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

时间:2013-08-28 07:34:41

标签: javascript angularjs routes

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

3 个答案:

答案 0 :(得分:404)

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

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

API Reference

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

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

如果您打算使用angular-ui-router等,那么只需从模块$routeProvider中删除.config()依赖关系,并将其替换为相关的提供商(例如{{1} }})。然后,您将使用$stateProvider依赖项:

ui.router

答案 1 :(得分:41)

添加scotty的答案:

选项1: 要么在JS文件中包含它:

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

选项2: 或者只使用网址将“angular-route.min.js”下载到您当地。

然后(您选择的任何选项)将此“ngRoute”添加为依赖项。

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

干杯!!!

答案 2 :(得分:3)

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

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

咖啡语法:

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