Angularjs 使用$sce中的$sceProvider功能

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.

从Angular文档中可以看出,
$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更新了我的回答是否有任何特定要求从服务中使用它?