2014-12-05 95 views
0

我正在更新一個很長的數組,它具有複雜的計算,可能需要一兩秒鐘。如何告訴angularjs停止觀看變量一段時間?

在陣列變化時(即在不同的算法步驟中),角度不斷更新每個中間步驟的UI。

我該如何要求角度停止爲這個變量尋找一秒或兩秒的變化,並在完成後再次開始觀看?

+0

試圖隱藏用戶界面的一部分,直到所有的步驟都是通過引入新的$完整範圍變量和'ng-show' – RandomUser 2014-12-05 06:20:11

回答

4

我該如何請求角度停止尋找這個變量的變化 一兩秒鐘,並在我完成後再次開始觀看?

假設你指的是2個數據的控制器範圍可變和視圖之間的結合,一個解決辦法是將做關範圍的計算中的控制器變量,然後分配該變量的範圍之後。在「兩秒鐘」的計算正在發生,消化週期不會變觸發這樣:

// making copy so we are not passing by reference (array or object)  
var localCopyOfVar = angular.copy($scope.complexArray); 

// do complex stuff with localCopyOfVar 
// ... 

// assign finished work back onto scope variable  
$scope.complexArray = localCopyofVar; 
1

如果您在HTML標記中使用{{ }},則無法停止手錶。如果你創建了$看自己,你可以停止和重新啓動後是這樣的:

var watchFunction = ... blahBlah ... 
var stopWatch = scope.$watch('foo', watchFunction) 

stopWatch() 

您可以最小化/消除做所有的更新在單個屏幕上閃爍通過不使用$超時消化。

相關問題