无法实例化module [$injector:unpr] 未知提供者:$routeProvider

IT技术 javascript angularjs routes
2021-03-13 00:26:51

我从 AngularJS 1.0.7升级1.2.0rc1时收到此错误

3个回答

ngRoute module不再是核心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 从您的module中删除依赖项.config()并将其替换为相关的选择提供程序(例如$stateProvider)。然后,您将使用ui.router依赖项:

var app = angular.module('MyApp', ['ui.router', ...]);
ui-router虽然它在 cdnjs 上,但它似乎不在自己的 CDN 上:cdnjs.com/libraries/angular-ui-router
2021-04-20 00:26:51
ui-router如果您从头开始(github.com/angular-ui/ui-router项目似乎是一个更灵活的选择
2021-05-10 00:26:51
@SaharSany - 的文档angular-route提供了 CDN 地址以及其他选项。至于ui-router目前没有我所知道的 CDN。
2021-05-13 00:26:51
@gatoatigrado -ui.state当我将我的应用程序从angular-ui-router v0.0.1升级v0.2.0 时我才意识到语法有多旧,这意味着它现在使用这个ui.router名称。对于造成的任何混乱,我深表歉意。
2021-05-14 00:26:51
CDN地址在哪里angular-route.js
2021-05-17 00:26:51

添加到 scotty 的回答中:

选项 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']);

干杯!!!

抱歉,但我必须承认,这似乎与已经提供的答案非常相似?
2021-04-19 00:26:51
@SamanthaAtkins 就是这样做的,如果您知道需要什么,则注入依赖项并在没有该依赖项的代码时包含 JS 文件。尽管如果有人建议,我会很感激更好的方法。
2021-04-24 00:26:51
...在其他地方,我发现人们无法找到下载或引用“angular-route.min.js”的链接/URL。这就是我在回答中给出的内容,是的,我同意您谈到的“ngRoute”依赖关系,所以我也在我的回答中添加了这一点。
2021-05-10 00:26:51
我对 js 库地狱有点厌倦了。肯定有比逐个module找出合适的堆栈module更好的方法。
2021-05-16 00:26:51

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

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

咖啡语法:

app.controller 'StoreController', Array '$http', ($http) ->
  ...