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 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...