5

angular js を使用しています。私はコントローラー「youTubePlayerCtrl」を持っています。このコントローラーには、YouTubeビデオIDを含む$scope.videoIDがあります。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 ) at l ( http://code.angularjs.org/1.2.0-rc.2/angular.min.js:47:64 ) at 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

最初: @Cherniv が質問へのコメントで提案したng-src代わりに使用する必要があります。src詳細はこちらをご覧ください

2 番目: セキュリティ上の理由から、source 属性内で URL を連結することはできません。たとえば、 と などのスコープ変数で Javascript の URL を連結する必要がありfullURLますng-src="{{fullURL}}"。詳細はこちらをご覧ください

3 番目: Strict Contextual Escaping (SCE) が有効で、Angular v1.2 がデフォルトで SCE が有効になっている場合、URL をホワイトリストに登録する必要があります。詳細はこちらこちらをご覧ください。

于 2013-10-28T17:21:27.153 に答える