AngularJS:版本1.2.3中$ sce的'未知提供商'错误

mar*_*ike 3 javascript angularjs

我正在使用AngularJS 1.2.3,它应该默认启用SCE服务.但是,我收到以下错误:

http://errors.angularjs.org/1.2.3/$injector/modulerr?p0=SaveApp&p1=Error: [$injector:unpr]   
http://errors.angularjs.org/1.2.3/$injector/unpr?p0=%24sce 
at Error (native)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

var AwesomeApp = angular.module('AwesomeApp', ['ngCookies', 'ngSanitize', 'ngRoute', 'ui.bootstrap', 'ui.router'], function($httpProvider, $dialogProvider) {
Run Code Online (Sandbox Code Playgroud)

还有一点:

AwesomeApp.config(['$routeProvider', '$compileProvider', '$sce', function($routeProvider, $compileProvider, $sce) {

$routeProvider.
    when('/', {templateUrl: $sce.getTrustedResourceUrl(chrome.extension.getURL('app.html')),   controller: 'searchResultsController'}).
    otherwise({redirectTo: '/'});
Run Code Online (Sandbox Code Playgroud)

有什么想法存在未知提供商错误?

Ila*_*mer 5

$sce 是服务(不是提供者)

您不能仅将服务注入到配置块中.

您可以做的是注入$sceDelegateProvider并创建白名单:

.config(function($sceDelegateProvider){

  $sceDelegateProvider.resourceUrlWhitelist(['self','http://*.url.com/**']);

})
Run Code Online (Sandbox Code Playgroud)

来自$ sceDelegateProvider docs:

$ sceDelegateProvider提供程序允许开发人员配置$ sceDelegate服务.这允许获取/设置用于确保用于获取Angular模板的URL是安全的白名单和黑名单.