在我的AngularJS
应用程序中,我有多个route.js文件控制着我的所有路由。
默认情况下,我的路线"/"
等于"/main"
,但是有办法稍后覆盖吗?
假设我有一个像这样的route.js:
angular.module('myApp')
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.when('/','/main');
$stateProvider
.state('main', {
url: "/main",
templateUrl: 'main.html',
controller: 'mainController'
});
});
但后来我想动态覆盖这个默认路由,使用来自route2.js的新路由
angular.module('myApp')
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.when('/','/newMain');
$stateProvider
.state('newMain', {
url: "/newMain",
templateUrl: 'newMain.html',
controller: 'newMainController'
});
});
答案 0 :(得分:1)
.when
设置不仅可以提供常量,甚至可以是函数。
所以,让我们设置一些(例如天真的全球var useDifferent = false;
)并做出决定:
$urlRouterProvider.when("/other", function(){
if(useDifferent){
return "/newMain";
}
return "/Main";
});
稍后,任何人都可以更改该设置useDifferent = true
(或者更多,更智能和更正确的处理......)