我正在创建我的第一个大型 Angular 项目,因此我选择将我的 Angular 应用程序代码分解为如下目录:
app/
calendar/
calendar.js
contacts/
contacts.js
companies/
companies.js
...
app.js
这些目录中的每一个都将包含一些用于视图 (.html)、指令、服务等的文件。
在我的app.js
文件中,我想设置可能有 80% 的时间使用的默认路由,如下所示:
$routeProvider
.when('/:page', {
templateUrl: function($routeParams) {
return 'app/' + $routeParams.page + '/index.html';
},
controller: 'PageController'
})
但是,我希望能够从我的模块中“覆盖”该路由,以便我可以执行诸如换出控制器、执行依赖注入等操作。我希望模块本身包含的那种逻辑来保持......嗯......模块化,所以我宁愿不在app.js
. 例如,在我的app/calendar/calendar.js
文件中,我想说:
$routeProvider
.when('/calendar', {
templateUrl: 'app/calendar/index.html',
controller: 'CalendarIndexController',
resolve: { ... }
})
问题是 in 中的定义app.js
首先与位置匹配,因此从不使用此日历路线。
为了实现这一点,现在我只是在我的所有模块 javascript 文件之后包含一个额外的文件,它最后设置了我的后备路由,但这似乎有点笨拙。无论如何要定义其中的路线,app.js
以便它们可以覆盖?