68

我正在尝试启动并运行 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) Inject 'ngroute' 或 2) 您需要在路由中定义控制器。我的问题是,我不明白如何注入 ngroute。另外,我真的需要在路由中定义控制器吗?这种方法似乎不可扩展。我的应用程序可能有一千次浏览。在我看来,似乎必须有一种方法来定义路由,而不必加载所有控制器。

4

2 回答 2

144

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

在 Angular 1.2 中,他们将 ngRoute 设为可选(因此您可以使用第三方路由提供程序等),并且您必须在模块中显式依赖它,并包含单独的 file

'use strict';

angular.module('myApp', ['ngRoute']).
    config(['$routeProvider', function($routeProvider) {
$routeProvider.otherwise({redirectTo: '/home'});
}]);
于 2013-10-05T13:12:28.727 回答
33

在angular 1.4+中,除了添加依赖

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

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

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

https://docs.angularjs.org/api/ngRoute

于 2016-01-12T04:07:10.747 回答