我已经定义了一个这样的自定义指令:
.directive('row', [function() {
return {
restrict: 'E',
templateUrl: 'chrome://mailtowebmails/content/resources/directives/row.htm'
};
}])
但是当我尝试使用它时,我收到了这个错误:
“错误:[$ sce:insecurl]阻止从$ sceDelegate策略允许的网址加载资源.URL:chrome://mailtowebmails/content/resources/directives/row.htm
我尝试过像这样的santizing:
.config( [
'$compileProvider',
function( $compileProvider )
{
$compileProvider.aHrefSanitizationWhitelist(/^\s*(filesystem:chrome):/);
}
])
但它没有解决它。
这是一个插件,所以我文件的路径在文件系统上。
我也尝试过:
var ANG_APP = angular.module('mailtowebmails', [])
.config(['$sceDelegateProvider', function ($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self', new RegExp('chrome')]);
}])
然后我收到了这个错误:
错误:[$ injector:modulerr]由于以下原因导致无法实例化模块mailtowebmails: [$ injector:modulerr]由于以下原因无法实例化模块$ sceDelegateProvider: [$ injector:nomod]模块'$ sceDelegateProvider'不可用!您要么错误拼写了模块名称,要么忘记加载它。如果
我也试过这个@Tribute推荐,但它没有用:
var ANG_APP = angular.module('mailtowebmails', [])
.directive('row', [function() {
return {
restrict: 'E',
templateUrl: 'chrome://mailtowebmails/content/resources/directives/row.htm'
};
}])
.controller('BodyController', ['$scope', '$sce', function($scope, $sce) {
$scope.trustSrc = function(src) {
return $sce.trustAsResourceUrl(src);
};
答案 0 :(得分:1)
你“尝试1”的方法应该有效。但是必须改变正则表达式。
.config(['$sceDelegateProvider', function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self', 'chrome://mailtowebmails/**/*.html']);
}])