我正在尝试启动并运行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。另外,我真的需要在路线中定义控制器吗?这种方法似乎不具备可扩展性。我的应用程序可能有一千个视图。在我看来,似乎必须有方法来定义路由而不必加载所有控制器。
答案 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">