无法实例化模块[$ injector:unpr]未知提供程序:$ routeProvider


Answers:


404

ngRoute模块不再是核心angular.js文件的一部分。如果继续使用$ routeProvider,那么现在需要angular-route.js在HTML中包括:

<script src="angular.js">
<script src="angular-route.js">

API参考

您还必须ngRoute为应用程序添加依赖项:

var app = angular.module('MyApp', ['ngRoute', ...]);

相反,如果您打算使用angular-ui-router或类似方法,则只需$routeProvider 从模块中删除依赖项,然后将其.config()替换为相关的选择提供者(例如$stateProvider)。然后,您将使用ui.router依赖项:

var app = angular.module('MyApp', ['ui.router', ...]);

2
好像ui-router项目可能是一个更灵活的选择,如果你从头(开始github.com/angular-ui/ui-router
gatoatigrado

2
@gatoatigrado- ui.state当我将应用程序从angular-ui-router v0.0.1升级到v0.2.0时,我才意识到语法的年代,这意味着它现在使用该ui.router名称。对于造成的任何混乱,我深表歉意。
Scotty.NET 2013年

3
哪里是CDN地址angular-route.js
萨哈尔·桑尼

@SaharSany-的文档angular-route提供了CDN地址以及其他选项。至于ui-router目前没有我所知道的CDN。
Scotty.NET 2013年

3
ui-router尽管它位于CDNJS上,但似乎并没有独立的CDN:cdnjs.com/libraries/angular-ui-router
Nick McCurdy

41

添加到斯科蒂的答案:

选项1:将其包含在您的JS文件中:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

选项2:或仅使用URL将“ angular-route.min.js ” 下载到本地。

然后(无论您选择什么选项)将此“ ngRoute”添加为依赖项。

解释: var app = angular.module('myapp', ['ngRoute']);

干杯!!!


5
抱歉,但我不得不承认这似乎与已经提供的答案非常相似??
Scotty.NET 2013年

2
……在其他地方,我发现人们无法找到要下载或参考“ angular-route.min.js”的链接/ URL。这就是我在“答案”中给出的,是的,我同意您所说的“ ngRoute”依赖关系,因此我也在“答案”中添加了它。
mayankcpdixit

我对js库地狱感到不胜其烦。当然,必须有一种比逐个模块找出正确的堆栈更好的方法。

@SamanthaAtkins就是这样完成的,如果您知道需要什么,请注入依赖项,如果没有该依赖项的代码,请包含JS文件。尽管有人建议,我希望能有更好的方法。
mayankcpdixit 2014年

3

在我的情况下,这是因为文件缩小了错误的作用域。使用数组!

app.controller('StoreController', ['$http', function($http) {
    ...
}]);

咖啡语法:

app.controller 'StoreController', Array '$http', ($http) ->
  ...
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.