$ sce.trustAsResourceUrl()全局

我怎样才能做到这一点: $sce.trustAsResourceUrl('URL_HERE');

在全球范围内,像在主要的应用程序的config()run()函数,以便任何具有URL_HERE iFrames,img src URL_HERE可以工作?

Docs在解释这个方面相当贫穷。

我刚刚从前面的回答中读到你的评论。 不知道你是否find了解决scheme。 似乎你正在寻找一个白名单types的东西。 我最近发现,$ sce有白名单function。

从AngularJS文档中获取$ sceDelegateProvider :

 angular.module('myApp', []).config(function($sceDelegateProvider) { $sceDelegateProvider.resourceUrlWhitelist([ // Allow same origin resource loads. 'self', // Allow loading from our assets domain. Notice the difference between * and **. 'http://srv*.assets.example.com/**']); }) 

有了这个,你可以在iframe中做这样的string插值:

 <iframe ng-src="{{ 'http://srv1.assets.example.com/' + url_asset }}"></iframe> 

你可以使用一个filter。 这些都是全球可用的。

 angular.module('myApp') .filter('trustUrl', function ($sce) { return function(url) { return $sce.trustAsResourceUrl(url); }; }); 
 <img ng-src={{ imageHref | trustUrl }}"> 

我也喜欢过滤解决scheme; 然而,它没有为我工作,直到我正确地注入$ sce …

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

我用我的video存储在文件系统上:

 app.config( [ '$sceDelegateProvider', function($sceDelegateProvider) { $sceDelegateProvider.resourceUrlWhitelist(['self','filesystem:**']); } ]);