2014-09-01 19 views
0

應用結構UI路由器狀態附加到現有的用戶界面視圖

$stateProvider. 
    state('azured', { 
     url: "/azured/", 
    }). 
    state('azured.ref', { 
     url: "/ref", 
    }). 
    state('azured.ref.table', { 
     url: "/table/:tableId", 
    }). 
    state('azured.ref.table.list', { 
     url: "/list/:listId", 
    }). 
    state('azured.ref.table.list.item', { 
     url: "/item/:itemId", 
    }); 

每個州的地方小窗口的模板。

<div container> 
    <div header></div> 
    <div body></div> 
</div> 
<ui-view /> 

但我不知道如何將新狀態附加到當前狀態。說我有另一種狀態:

. 
    state('asd', { 
     url: "/asd", 
    }). 
    state('asd.ref', { 
     url: "/ref", 
    }); 

,當我從/導航到/asd我看到正確的狀態。但我想從

/azured/ref/tableId/12/listId/3/itemId/434 

導航到這種狀態並不會破壞當前的小部件,但追加
(使URL爲/azured/ref/tableId/12/listId/3/itemId/434/asd
(請注意:ASD)。只是想將新狀態附加到當前狀態並繼續進行下去。猜猜我可以硬編碼所有可能的分支,但需要更好的解決方案。

這裏是預覽 enter image description here

+1

另一種解決方案是你可以使用'$ stateChangeStart'它有5個參數'事件,toState,toParams,FromState,FromParams' ..你可以做的是從狀態檢查,然後重定向你想要的方式,但你必須添加正則表達式到'$ stateProvider'狀態聲明中,使得正則表達式滿足上面的url(沒有asd) – 2014-09-01 14:40:23

+0

爲什麼我要regex它?爲什麼不離開它並將新的url添加到該現有狀態?事實上,我不明白應該如何處理,有人說這是設計問題,但如何ms azure刀片然後 – 2014-09-02 03:12:57

回答

1

外觀到用戶界面,路由器演員。我在打電話。沒有URL但谷歌它

+0

DeepStates幫助 – 2014-09-03 11:10:21