Angularjs 如何在模块配置中将templateUrl设置为受信任的?

Angularjs 如何在模块配置中将templateUrl设置为受信任的?,angularjs,Angularjs,考虑规范(角度1.2 RC3): main.config(['$routeProvider','$sce',函数($routeProvider,$sce){ $routeProvider.when('/',{templateUrl:$sce.trustAsResourceUrl('bla-bla.html'),controller:'App.Controllers.blablabla}); $routeProvider。否则({重定向到:'/'}); }]); 它将抛出一个异常,因为在配置期间

考虑规范(角度1.2 RC3):

main.config(['$routeProvider','$sce',函数($routeProvider,$sce){
$routeProvider.when('/',{templateUrl:$sce.trustAsResourceUrl('bla-bla.html'),controller:'App.Controllers.blablabla});
$routeProvider。否则({重定向到:'/'});
}]);
它将抛出一个异常,因为在配置期间不允许服务,并且我在这里使用“$sce”(严格上下文转义)服务


如何在“配置”方法中使用SCE?此问题的可能解决方案是什么?

Angular拥有
$sceProvider
服务,在特权上下文中,指令和代码将绑定到
$sce.getTrusted(上下文,值)
的结果,而不是直接绑定到值

指令使用
$sce.parseAs
而不是
$parse
来监视属性绑定,该绑定在幕后对非常量文本执行
$sce.getTrusted

除此之外,我认为:
配置块-在提供商注册和配置阶段执行。仅提供程序和常量 可以注入到配置块中。这是为了防止 在服务完全启动之前意外实例化服务 配置


运行块-在创建注入器后执行,用于启动应用程序。只能使用实例和常量 注入运行块。这是为了防止进一步的系统故障 在应用程序运行时进行配置


因此,现在$sceProvider是一个内置服务,您不能将自己的服务或$http之类的内置服务注入config()

解决方案
请改用。

此问题可能已在此处找到答案: