Angularjs 使用$sce中的$sceProvider功能
从Angular文档中可以看出,Angularjs 使用$sce中的$sceProvider功能,angularjs,angularjs-service,angularjs-provider,Angularjs,Angularjs Service,Angularjs Provider,从Angular文档中可以看出,$sceDelegateProvider.resourceUrlWhitelist可以设置受信任的资源URL,但我需要控制器提供的功能 我想在我的服务中设置受信任资源URL的白名单。因此,我只能使用$sce服务,不能使用提供商 我试图实现这个示例,但它给我带来了一个错误( “$sce:不安全 需要安全/可信值“): this.renderUrl=this.$sce.getTrustedUrl(${this.baseUrl})+`/x/y/?name=${this.
$sceDelegateProvider.resourceUrlWhitelist
可以设置受信任的资源URL,但我需要控制器提供的功能
我想在我的服务中设置受信任资源URL的白名单。因此,我只能使用$sce
服务,不能使用提供商
我试图实现这个示例,但它给我带来了一个错误(
“$sce:不安全
需要安全/可信值“):
this.renderUrl=this.$sce.getTrustedUrl(${this.baseUrl}
)+`/x/y/?name=${this.name}代码>
然后将renderUrl
注入html:
<iframe ng-src="{{$ctrl.renderUrl}}"></iframe>
是否有方法从$sce
服务设置受信任的资源URL,以便将其添加到受信任资源URL的列表中?创建一个筛选器:
app.filter('trusturl', ['$sce', function ($sce) {
return function(url) {
return $sce.trustAsResourceUrl(url);
};
}]);
为您服务:
// Injecting Filter in Service
app.service('trustUrlService', function ($scope,$filter) {
$scope.trustUrl = function(url){
return $filter('trusturl')(url);
};
});
在控制器中,您可以这样使用:
app.controller("myCtrl", function($scope,trustUrlService) {
$scope.url = trustUrlService.trustUrl(url);
});
<iframe ng-src={{ imageHref | trusturl }}" />
在模板中,您可以这样使用:
app.controller("myCtrl", function($scope,trustUrlService) {
$scope.url = trustUrlService.trustUrl(url);
});
<iframe ng-src={{ imageHref | trusturl }}" />
谢谢,我知道这个选项。我正在寻找一种方法,它将是更通用的情况下,我将有相同的前缀的基本网址$sce.trustAsResourceUrl(');限制我并强制我每次为相同的基本url调用该方法。@Moris更新了我的回答是否有任何特定要求从服务中使用它?