AngularJS错误:$插值:INTERR插值误差 [英] AngularJS Error: $interpolate:interr Interpolation Error
本文介绍了AngularJS错误:$插值:INTERR插值误差的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图让YouTube视频插入我的网站AngularJS,但我不断收到同样的错误:
错误:$插值:INTERR插值误差
为什么我得到这个错误,我怎么能摆脱它?我想要的是插入视频...
App.js
VAR对myApp = angular.module('对myApp',[
'duScroll','duParallax','angularFileUpload','ngRoute','ngSanitize'
]);myApp.filter(的YouTube',['$ SCE',函数($ SCE){
复位功能(VAL){
VAR录象= VAL;
VAR手表= val.indexOf(V =?)+ 3;
变种播放列表= val.indexOf('和;')+ 1; 如果(播放列表大于0){
返回$ sce.getTrustedResourceUrl('// www.youtube.com/embed/'+ val.substring(手表,播放列表));
}其他{
返回$ sce.getTrustedResourceUrl('// www.youtube.com/embed/'+ val.substring(手表,videoLink.length));
}
};
}]);
index.jade
IFRAME(NG-IF =story.media.videoSRC ={{story.media.video | YouTube上}}FRAMEBORDER =0的allowFullScreen)
解决方案
在这种情况下,它会的似乎简单的白名单 YouTube的嵌入路径和摆脱的过滤器。
此外,还应使用 NG-SRC
而不是的src
的iframe中。
myApp.config([$ sceDelegateProvider功能($ sceDelegateProvider){
$ sceDelegateProvider.resourceUrlWhitelist([
'自',
http://www.youtube.com/embed/**
]);
}]);
I am trying to get a youtube video inserted into my website with AngularJS, but I keep getting the same error:
Error: $interpolate:interr Interpolation Error
Why do I get this error and how can I get rid of it? All I want is to insert the video...
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)
解决方案
In this case it would seem simpler to whitelist the youtube embed path and get rid of the filter.
Also, you should also use ng-src
instead of src
for the iframe.
myApp.config(["$sceDelegateProvider", function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist([
'self',
"http://www.youtube.com/embed/**"
]);
}]);
这篇关于AngularJS错误:$插值:INTERR插值误差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文