考虑以下:
.state('manager.staffList',{url:'^/staff?alpha',templateUrl: 'views/staff.list.html',data:{activeMenu: 'staff'},controller: 'staffListCtrl'}) .state('manager.staffDetail',{url:'^/staff/{id}',templateUrl: 'views/staff.html',controller: 'staffDetailsCtrl'}) .state('manager.staffDetail.view',{url:'/view',templateUrl: 'views/staff.details.html',data:{activeMenu: 'staff'}}) .state('manager.staffDetail.view.schedule',{url:'/schedule',templateUrl:'views/staff.view.schedule.html',data:{activeMenu: 'staff'}}) .state('manager.staffDetail.view.history',{url:'/history',templateUrl:'views/staff.view.history.html',data:{activeMenu: 'staff'}}) .state('manager.staffDetail.view.log',{url:'/log',templateUrl:'views/staff.view.log.html',data:{activeMenu: 'staff'}}) .state('manager.staffDetail.view.files',{url:'/files',templateUrl:'views/staff.view.files.html',data:{activeMenu: 'staff'}}) .state('manager.staffDetail.edit',{url:'/edit',templateUrl: 'views/staff.edit.html',data:{activeMenu: 'staff'}})
如果我去domain.com/staff/1234/view,我如何默认为manager.staffdetail.view.schedule子状态?
>首先,向“manager.staffDetail.view”状态的abstract:true添加一个属性。这不是必需的,但是你想设置它,因为你永远不会直接去这个状态,你总是去一个它的子状态。
>然后执行以下操作之一:
>然后执行以下操作之一:
>给’manager.staffDetail.view.schedule’状态一个空的URL。这将使它匹配与它的父状态url相同的网址,因为它不附加到父网址。
.state(‘manager.staffDetail.view.schedule’,{url:”,…
>或者如果你想保持默认的子路由的url不变,然后在你的module.config中设置一个重定向。此处的代码将“/ staff / {id} / view’的任何位置重定向到’/ staff / {id} / view / schedule’的位置:
$ urlRouterProvider.when(‘/ staff / {id} / view’,’/ staff / {id} / view / schedule’);