2014-12-18 51 views
2

在尝试初始化我的应用程序时,我试图按照以下方式初始化模块的run()方法,但它不能编译。试图注入AngularJS运行块

的错误是:

Uncaught Error: [$injector:unpr] http://errors.angularjs.org/1.3.5/$injector/unpr?p0=%24routeProvider%20%3C-%20%24route 

Error: error:unpr 
Unknown Provider 
Unknown provider: $routeProvider <- $route 

,这里是在app.js代码:

(function() { 
    'use strict'; 
    angular.module('rage', [ 
     'ui.router', 
     'ui.bootstrap', 
     'ui.dashboard', 
     'kendo.directives', 
     'jqwidgets'    
    ]).run(['$route', '$rootScope', init]); 

    function init($route, $rootScope){ 
     var i = 1; 
    } 

})(); 
不依赖

然而,它贯穿罚款:

(function() { 
    'use strict'; 
    angular.module('rage', [ 
     'ui.router', 
     'ui.bootstrap', 
     'ui.dashboard', 
     'kendo.directives', 
     'jqwidgets'    // Kendo UI and jQWidgets libs (loaded in index.html) 
    ]).run(init); 

    function init(){ 
     var i = 1; 
    } 

})(); 
+2

'$ route'不是来自角度ui路由器。你需要包含ngRoute模块的角度路由器 – PSL 2014-12-18 22:48:17

+1

@PSL - 你又来了!你绝对正确。我刚刚发现,在注入'ngRoute'模块的不同应用程序(Angular $ route service)中。 – 2014-12-18 22:57:29

+0

作为答案! – 2014-12-18 22:57:56

回答

2

$routeProvider是不是ui.router模块的一部分。 ui.router也不会使用ngRoute,因此您不能在运行块内访问$route服务,因为它不存在。尝试包括ngRoute,如果你需要使用它(但你已经有一个ui.router,所以我不知道)。

angular.module('rage', [ 
     'ngRoute' //<-- Here 
     'ui.router', 
     'ui.bootstrap', 
     'ui.dashboard', 
     'kendo.directives', 
     'jqwidgets'    
    ] 

或者只是从依赖列表中删除$route