我正在尝试使用AngularJS将YouTube视频插入我的网站,但我仍然遇到同样的错误:
Error: $interpolate:interr Interpolation Error
为什么我会收到此错误,如何摆脱它?我想要的只是插入视频......
App.js
var myApp = angular.module('myApp', [
'duScroll', 'duParallax', 'angularFileUpload', 'ngRoute', 'ngSanitize'
]);
myApp.filter('youtube', ['$sce', function($sce) {
return function(val) {
var videoLink = val;
var watch = val.indexOf("?v=") + 3;
var playlist = val.indexOf('&') + 1;
if (playlist > 0) {
return $sce.getTrustedResourceUrl('//www.youtube.com/embed/' + val.substring(watch, playlist));
} else {
return $sce.getTrustedResourceUrl('//www.youtube.com/embed/' + val.substring(watch, videoLink.length));
}
};
}]);
index.jade
iframe(ng-if="story.media.video" src="{{ story.media.video | youtube }}" frameborder="0" allowfullscreen)
答案 0 :(得分:3)
在这种情况下,它将seem simpler to whitelist youtube嵌入路径并删除过滤器。
另外,您还应该使用ng-src
代替src
作为iframe。
myApp.config(["$sceDelegateProvider", function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist([
'self',
"http://www.youtube.com/embed/**"
]);
}]);
答案 1 :(得分:0)
我用这个Jquery基本解决了:
src="http://www.youtube.com/embed/bSMInVPIE8o?autoplay=1"
$JQ('iframe').attr('src',src);