2015-11-04 18 views
0

我使用$state.go(url)在幾個工廠中導航。爲了避免閃爍,我想訂閱我的動畫以在新狀態完全加載時開始。 Angular + ui-router :: on state complete callback

如果有任何方法可以在插入狀態的html和/或第一個digest循環運行時調用的工廠內添加回調?

回答

1

您可以自由運行$stateChangeStart並繼續使用$viewContentLoaded事件。

您的狀態與您在狀態配置中添加的用於解析功能的許多承諾一樣精確。因此,如果您的滿載狀態取決於數據準備情況和頁面呈現完成狀態 - 您需要確保該控制器在您丟失任何內容之前不會加載。

只有在這些事件之間顯示動畫的意識是 - 放置在當前狀態下的每個視圖將分別調用$viewContentLoaded

如果在子視圖的數量等於事件發生次數之後,我正在卸載動畫。

1

你可以聽是發射時的狀態轉換完成事件$stateChangeSuccess

$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){ 
    // your code here 
}); 

Check the UI Router doc about states and events

+0

但簡單的狀態變化的成功並沒有給這種精確的知道何時觀點實際上準備。該事件只有在控制器解析並且init方法完成後纔會觸發,但是在視圖編譯成功後纔會觸發。或者我錯過了一些成功事件的隱藏能力? – Appeiron