2017-08-08 108 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()
相關問題