我是一个陌生人的陌生人....
在我的来源中,为什么会这样:
Video Url: {{exercise.videos[0].url}}
通过显示视频的网址来工作......但是:
<iframe src="http://fast.wistia.net/embed/iframe/{{exercise.videos[0].url}}"></iframe>
只放&{39; {{exercise.videos [0] .url}}&#39;和其他信息不一样?
答案 0 :(得分:2)
因为AngularJS未评估src
。但ng-src
是:
<iframe ng-src="http://fast.wistia.net/embed/iframe/{{exercise.videos[0].url}}"></iframe>
答案 1 :(得分:0)
这里的问题不是iframe标签本身,而是src属性。对src属性使用角度变量时,需要使用ng-src指令。
<iframe ng-src="http://fast.wistia.net.embed.iframe/{{exercise.videos[0].url}}"></iframe>
答案 2 :(得分:0)
第一个示例中的括号是ngBind指令的简写,粗略地说只设置元素的文本,而不是像其他模板语言一样充当模板中的一般文本替换。 / p>
答案 3 :(得分:0)
由于“严格上下文转义”,此限制已到位,并且是AngularJS中的一种机制,可帮助防止XSS和点击劫持。
如果您想了解更多信息,请查看此处:
https://docs.angularjs.org/api/ng/service/$sce
上面的注释是正确的,你可以使用ngSrc指令来避免解决它,但看起来你必须注入$ sce模块并使用trustAsResourceUrl()方法来使它工作,这是一个工作小提琴:
HTML:
<iframe ng-src="{{exercise.videos[0].url}}"></iframe>
JS:
$scope.exercise.videos = [{url:$sce.trustAsResourceUrl("http://fast.wistia.net/embed/iframe/someUrl.html")}];