我试图在一个Angular JS应用中实现一个video元素,而ng-src无法读取scope变量
我使用的是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)
这是最新版本中的错误还是故意禁用的?有什么解决办法?
5条答案
按热度按时间b1uwtaje1#
Angular 1.2默认启用了严格上下文转义(SCE)。你需要稍微调整你的代码使其工作。
HTML格式
更改标记,使
ng-src
绑定到一个变量,而不是像以前设置的那样绑定到URL +变量:JavaScript语言
添加
$sce
以插入SCE提供程序,并使用$sce.trustAsResourceUrl
方法设置videoUrl
。下面是此设置的一个JS Bin demo示例。
bweufnob2#
经过一些调试后,我发现错误是这样的:
本文解释了发生了什么以及如何禁用严格上下文转义:http://docs.angularjs.org/api/ng.$sce
5sxhfpxr3#
我构建了这个指令
接下来是我写在模板上的内容
webghufk4#
我做了简单的黑客之前,我发现以前的职位。有人可以找到这个有用的
于飞:
Controller.js
kyxcudwk5#
我在1. 5. 0版本的angular上也遇到了同样的问题。当我改变版本(我选择了1. 4. 8版本)时,我的问题就解决了。
第一个