angularjs – 当用户使用UI-Router转换到其父状态时,将用户定向到子状态

前端之家收集整理的这篇文章主要介绍了angularjs – 当用户使用UI-Router转换到其父状态时,将用户定向到子状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
考虑以下:
.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’);

猜你在找的Angularjs相关文章