我有一個使用UI路由器的角度應用程序。我已經訂閱了$ stateChangeStart和$ stateChangeSuccess事件,並且我正在使用ng-show指令來顯示/隱藏「isLoading」的控制器屬性,以獲取UI視圖標籤外部的加載指示器以外的。我可以通過代碼進行調試,看到事件正在觸發,變量正在JS中設置,但似乎在開始和成功事件之間,DOM從不更新,因此我的加載指示器從不顯示。我能得到加載指示器的唯一方法是添加0秒的$超時並在那裏進行變量更新。
$rootScope.$on("$stateChangeStart", function() {
ctrl.isLoading = true;
});
$rootScope.$on("$stateChangeSuccess", function(ev, to, toParams, from, fromParams) {
$timeout(function() {
ctrl.isLoading = false;
}, 0);
});
此JSFiddle http://jsfiddle.net/uwhetx7q/2/演示我正在努力。
當應用$超時時,即使在0秒時,加載指示燈也會閃爍。但沒有它,我的變量永遠不會$ apply'd。
我試着實際調用$ apply和$ digest,但是我得到這些方法已經在進行的錯誤。
我希望有一些超級明顯,我很想念這將讓我的負荷指標顯示,因爲空$超時是一個壞的解決方案:)
謝謝!
我想加載working..but狀態變化太快,我們無法看到加載 –