首页 > 解决方案 > AngularJS - 将 url 动态添加到 $sceDelegateProvider.resourceUrlWhitelist

问题描述

我有这个片段,我在其中配置我的 AngularJS 应用程序以将某些 url 列入白名单

angular.module("MyModule").config(['$sceDelegateProvider', function ($sceDelegateProvider) {
     $sceDelegateProvider.resourceUrlWhitelist(["mySite", "myOtherSite/**", "myOtherOtherSite/**"]); 
}]);

我在网上到处搜索,似乎由于 AngualrJS 的阶段(配置和运行),提供者对象无权访问 angular 中可用的任何服务 - 或者我的所有服务 - 。

现在由于架构中的一些变化,不再可能拥有硬编码的 URL 列表。我想进行 REST 调用,然后将应用程序配置为使用从 REST API 返回的 URL。所以我想知道是否有可能做这样的事情,或者我是否可以做一些事情来覆盖 $sceDelegateProvider 的实现。

angular.module("MyModule")
       .config(['$sceDelegateProvider', 'myHTTPService', function ($sceDelegateProvider, myHTTPService) {
            myHTTPService.callSomeAPI(function (res) {
                //...someMagic stuff here
                $sceDelegateProvider.resourceUrlWhitelist(magicUrls);
            });
}]);

标签: angularjs

解决方案


推荐阅读