2016-07-29 24 views
0

我有兩種狀態:狀態控制器被重建未預期地

.state('a.b', { 
    url: "", 
    views: { 
     "b": { 
     template: require('./ab.html'),    
     controller: ABController 
    } 
    }) 
    .state('a.b.c', { 
    url: "/:someid", 
    views: { 
     "c": {            
     template: require('./abc.html'),    
     controller: ABCController 
    } 
    }) 

與ab.html:

<div ui-view="c"></div> 

當我從狀態AB導航到狀態ABC,我看到ABController被重構而當我從abc狀態導航到ab時,ABContoller不會重建。

我真正想要實現的是在從a.b導航到a.b.c或從a.b.c導航到a.b時不重建ABContoller。有沒有辦法做到這一點 ?

回答

0

所以,答案是,這確實是可能的,這是默認情況下發生的,因爲正如我期待的那樣,ui-router會仔細地跟蹤哪些狀態需要根據from和to states來銷燬/創建。

在這種情況下,觸發額外構造的是兩個狀態使用相同的參數變量,這迫使ui-router將狀態路徑的公共元素視爲不同。

基本上,修復涉及從狀態定義中刪除未使用的/錯誤的「params」屬性。