我正在尝试在有角度的JS应用中实现视频元素,并且ng-src不会读取范围变量
我正在使用1.2.0-rc.2
<!DOCTYPE html> <html ng-app="ngView"> <head> <script src="http://code.angularjs.org/1.2.0-rc.2/angular.min.js"></script> <script> var app = angular.module('ngView', []); function MyControl($scope){ $scope.file = '1234.mp4'; } </script> </head> <body ng-controller="MyControl"> <video controls ng-src="http://www.thebigdot.com/{{file}}"></video> </body> </html>
如果我使用的是较旧版本的AngularJS库,则可以使用。
cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js (works)
这是最新版本中的错误,还是故意将其禁用?解决方法是什么?
经过一些调试后,我发现错误是这样的:
Error: [$interpolate:noconcat] Error while interpolating: <http://www.thebigdot.com/>{{file}} Strict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See [http://docs.angularjs.org/api/ng.$sce](http://docs.angularjs.org/api/ng.%24sce)
http://errors.angularjs.org/1.2.0-rc.2/ $ interpolate / noconcat?p0 = http%3A%2F%2Fwww.thebigdot.com%2F%7B%7Bfile%7D%7D at http:/ /code.angularjs.org/1.2.0-rc.2/angular.js:78:12 at $ interpolate(http://code.angularjs.org/1.2.0-rc.2/angular.js:6953: 17)at nodeLinkFn的attrInterpolateLinkFn(http://code.angularjs.org/1.2.0-rc.2/angular.js:5367:27)(http://code.angularjs.org/1.2.0-rc。 2 / angular.js:5121:13)(位于CompositeLinkFn(http://code.angularjs.org/1.2.0-rc.2/angular.js:4640:15)位于nodeLinkFn(http://code.angularjs。 org / 1.2.0-rc.2 / angular.js:5115:24)在CompositeLinkFn(http://code.angularjs.org/1.2.0-rc.2/angular.js:4640:15)在compositeLinkFn(http://code.angularjs.org/1.2.0-rc.2/angular.js:4643:13)在publicLinkFn(http://code.angularjs.org/1.2.0-rc.2 /angular.js:4549:30),网址为http://code.angularjs.org/1.2.0-rc.2/angular.js:1157:27 angular.js:7861
本文介绍了正在发生的事情以及如何禁用严格的上下文转义:http : //docs.angularjs.org/api/ng.$sce