2017-08-08 80 views
0

我想知道是否有方法使用UI-Router自动重定向到父状态的子状态。Angular UI路由器:自动重定向到父状态的子状态

例如:

.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.**' 
}) 

任何帮助表示赞赏。提前致谢。

+0

为什么'redirectTo:'parent.child''不是一个好的解决方案? – JeanJacques

+0

因为我可能有不止一个孩子,我只想让它重定向到第一个孩子。 – realph

回答

0

它可能不是实现这一目标的正确方法,但你可以在你的父控制器补充一点:

$state.go($state.get().filter(function(cState) { return cState.name.indexOf('parent.') === 0 })[0]) 
  • 您检索所有国家$state.get()
  • 那么你过滤restult只得到与parent.在其名称的开头,并采取第一个与[0]
  • 和你去这个国家与$state.go()
相关问题