错误:[$ injector:unpr]未知提供者:$ routeProvider

时间:2013-10-05 11:17:45

标签: angularjs

我正在尝试启动并运行AngularJS 1.2 RC2应用程序。目前,我一直在使用Angular Seed项目尝试启动并运行我的应用程序。不幸的是,Angular Seed项目使用v1.0.7。从Angular Seed项目中,我已将依赖项更新为以下内容:

$script([
  'res/js/angular-1.2.0-rc.2.js',
  'res/js/angular-route-1.2.0-rc.2.js',
  'res/js/app.js?v=2',
], function() {
  // when all is done, execute bootstrap angular application
  angular.bootstrap(document, ['myApp']);
});

在app.js中,我有以下内容:

'use strict';

angular.module('myApp', []).
    config(['$routeProvider', function($routeProvider) {
        $routeProvider.otherwise({redirectTo: '/home'});
    }]);

当我运行此应用时,我收到以下错误:

Error: [$injector:unpr] Unknown provider: $routeProvider

我已经阅读了一些其他的回答,例如1)注入'ngroute'或2)你需要在路线中定义控制器。我的问题是,我不明白如何注入ngroute。另外,我真的需要在路线中定义控制器吗?这种方法似乎不具备可扩展性。我的应用程序可能有一千个视图。在我看来,似乎必须有方法来定义路由而不必加载所有控制器。

2 个答案:

答案 0 :(得分:142)

您似乎忘记在myApp的依赖项中包含ngRoute模块。

在Angular 1.2中,他们使ngRoute成为可选项(因此您可以使用第三方路由提供程序等),您必须在模块中明确地依赖它,以及including the separate file

'use strict';

angular.module('myApp', ['ngRoute']).
    config(['$routeProvider', function($routeProvider) {
$routeProvider.otherwise({redirectTo: '/home'});
}]);

答案 1 :(得分:27)

在角度1.4 +中,除了添加依赖

angular.module('myApp', ['ngRoute'])

,我们还需要引用单独的angular-route.js文件

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

请参阅https://docs.angularjs.org/api/ngRoute