角度插值:从变量

时间:2016-09-14 00:51:29

标签: javascript angularjs

我正在尝试向youtube网址添加动态ID,如下所示:

<iframe width="460px" height="415px" ng-src="{{post.youtube_id}}" frameborder="0" allowfullscreen></iframe>

这是我想要在src中添加的网址之一:https://www.youtube.com/embed/C-IiiFvfdVo

当我这样做时,我收到以下错误:

  

http://errors.angularjs.org/1.5.8/ $插值/ INTERR P0 =%7B%7Bpost.youtube_id%7D%7D&安培; P1 =错误%3A%20%5B%24sce%3Ainsecurl%5D%20http%3A%2F%2Ferrors。 angularjs.org%2F1.5.8%2F%24sce%2Finsecurl%3Fp0%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FozXJ0QrEj2Y

     

angular.min.js:118错误:[$ interpolate:interr]   http://errors.angularjs.org/1.5.8/ $插值/ INTERR?P0 =%7B%7Bpost.youtube ... ecurl%3Fp0%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FozXJ0QrEj2Y       在错误(本机)       在http://127.0.0.1:8000/static/common/angular/js/angular.min.js:6:412       在Function.Ka.interr(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:210:135)       在J(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:104:438)       在数组。 (http://127.0.0.1:8000/static/common/angular/js/angular.min.js:128:471)       在S.exp(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:106:51)       在Object.pre(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:79:374)       在http://127.0.0.1:8000/static/common/angular/js/angular.min.js:16:71       在la(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:81:90)       at p(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:66:149)(anonymous function)@ angular.min.js:118(匿名函数)@   angular.min.js:90J @ angular.min.js:104(匿名函数)@   angular.min.js:128S.exp @ angular.min.js:106pre @   angular.min.js:79(匿名函数)@ angular.min.js:16la @   angular.min.js:81p @ angular.min.js:66g @ angular.min.js:58g @   angular.min.js:58g @ angular.min.js:58g @ angular.min.js:58(匿名   函数)@ angular.min.js:58(匿名函数)@ angular.min.js:63d   @ angular.min.js:59m @ angular.min.js:64(匿名函数)@   angular.min.js:305q @ angular.min.js:7(匿名函数)@   angular.min.js:305 $ digest @ angular.min.js:143 $ apply @   angular.min.js:146l @ angular.min.js:97J @ angular.min.js:102t.onload   @ angular.min.js:103 angular.min.js:118错误:[$ interpolate:interr]   http://errors.angularjs.org/1.5.8/ $插值/ INTERR?P0 =%7B%7Bpost.youtube ... ecurl%3Fp0%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FozXJ0QrEj2Y       在错误(本机)       在http://127.0.0.1:8000/static/common/angular/js/angular.min.js:6:412       在Function.Ka.interr(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:210:135)       在J(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:104:438)       在http://127.0.0.1:8000/static/common/angular/js/angular.min.js:128:471       在http://127.0.0.1:8000/static/common/angular/js/angular.min.js:127:103       at m。$ digest(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:143:43)       at m。$ apply(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:146:113)       在l(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:97:322)       在J(http://127.0.0.1:8000/static/common/angular/js/angular.min.js:102:34)(anonymous函数)@ angular.min.js:118(匿名函数)@   angular.min.js:90J @ angular.min.js:104(匿名函数)@   angular.min.js:128(匿名函数)@ angular.min.js:127 $ digest @   angular.min.js:143 $ apply @ angular.min.js:146l @ angular.min.js:97J @   angular.min.js:102t.onload @ angular.min.js:103

如何添加此内容?

1 个答案:

答案 0 :(得分:9)

我在这里找到答案:External resource not being loaded by AngularJs

app.filter('trusted', ['$sce', function ($sce) {
   return $sce.trustAsResourceUrl;
}]);

然后在ng-src中指定过滤器:

<video controls poster="img/poster.png">
       <source ng-src="{{object.src | trusted}}" type="video/mp4"/>
</video>