AngularJS错误:$插值:INTERR插值误差 [英] AngularJS Error: $interpolate:interr Interpolation Error

查看:262
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆