iframe中的Angular js scope var值

时间:2013-10-10 07:16:53

标签: javascript angularjs iframe angular-routing

我正在使用角度js。我有一个控制器“youTubePlayerCtrl”,在这个控制器中我有$ scope.videoID,其中包含youtube视频ID。我可以在h1块中的下面的div中获得此值。但是我无法在iframe中获得{{videoID}},任何人都可以帮我解决这个问题。

<div ng-controller="youTubePlayerCtrl">
    <h1>{{videoID}}</h1>
    <iframe class="youtube-player" type="text/html" width="auto"
        height="auto" src="http://www.youtube.com/embed/{{videoID}}"
        allowfullscreen frameborder="0"> </iframe>
</div>

这是错误日志:

  

[$插值:noconcat]   http://errors.angularjs.org/undefined/ $插值/ noconcat?P0 = HTTP%3A%2F%2Fwww.youtube.com%2Fembed%2F%7B%7BvideoID%7D%7D       在错误()       在http://code.angularjs.org/1.2.0-rc.2/angular.min.js:6:453       at g(http://code.angularjs.org/1.2.0-rc.2/angular.min.js:69:467)       在b.push.compile(http://code.angularjs.org/1.2.0-rc.2/angular.min.js:54:6)       在l(http://code.angularjs.org/1.2.0-rc.2/angular.min.js:47:124)       在f(http://code.angularjs.org/1.2.0-rc.2/angular.min.js:41:361)       在l(http://code.angularjs.org/1.2.0-rc.2/angular.min.js:47:64)       在f(http://code.angularjs.org/1.2.0-rc.2/angular.min.js:41:361)       在http://code.angularjs.org/1.2.0-rc.2/angular.min.js:40:434       在http://code.angularjs.org/1.2.0-rc.2/angular-route.min.js:7:148 angular.js:7861(匿名   功能)

Jsfiddle(不工作)

感谢名单

1 个答案:

答案 0 :(得分:20)

首先:您需要使用ng-src代替src,因为@Cherniv在您的问题评论中建议。阅读更多here

第二:出于安全原因,您无法在源属性中连接URL:您必须在范围变量中连接Javascript中的URL,例如: fullURL然后ng-src="{{fullURL}}"。阅读更多here

第三:如果启用了严格上下文转义(SCE) - 并且Angular v1.2默认启用了SCE,则需要将URL列入白名单。阅读更多herehere