5

我正在使用 angular 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>

这是错误日志:

[$interpolate:noconcat] http://errors.angularjs.org/undefined/ $interpolate/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 在 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 at http://code.angularjs.org/1.2.0-rc.2/angular-route.min.js:7:148 angular.js:7861(匿名函数)

Jsfiddle(不工作)

谢谢

4

1 回答 1

20

首先:您需要使用ng-src而不是src@Cherniv 在对您的问题的评论中建议的那样。在这里阅读更多。

第二:出于安全原因,您不能在 source 属性内连接 URL:您必须将 Javascript 中的 URL 连接到范围变量中,例如fullURL然后ng-src="{{fullURL}}". 在这里阅读更多。

第三:如果启用了严格上下文转义(SCE)——并且Angular v1.2默认启用了SCE——你需要将URL列入白名单。在此处此处阅读更多信息。

于 2013-10-28T17:21:27.153 回答