Angular UI Router:自动重定向到父状态的子状态

时间:2017-08-08 11:41:52

标签: angularjs angular-ui-router

我试图弄清楚是否有办法使用UI-Router自动重定向到父状态的子状态。

例如:

.state('parent', {
  url: '/parent',
  template: '<parent></parent>',
  redirectTo: 'parent.child'
})
.state('parent.child', {
  url: '/child',
  template: '<child></child>'
})
.state('parent.child-two', {
  url: '/child-two',
  template: '<child-two></child-two>'
})

访问parent状态始终会将您重定向到parent.child状态。我想避免明确定义redirectTo属性,如下所示:

.state('parent', {
  url: '/parent',
  template: '<parent></parent>',
  redirectTo: 'parent.child'
})

而是有这样的通配符:

.state('parent', {
  url: '/parent',
  template: '<parent></parent>',
  redirectTo: 'parent.**'
})

感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这可能不是实现此目的的正确方法,但您可以在父控制器中添加:

$state.go($state.get().filter(function(cState) { return cState.name.indexOf('parent.') === 0 })[0])
  • 使用$state.get()
  • 检索所有状态
  • 然后您过滤了restult以仅在其名称的开头使用parent.获取状态,并使用[0]
  • 获取第一个
  • 然后您使用$state.go()
  • 进入此状态
相关问题