2017-06-19 78 views
0

我想了解Angular1 $摘要循環。我讀過多篇文章,說明每次更改都會多次調用摘要循環。多次調用角JS摘要循環

this文章,它說:

所以一旦我們走過所有的在$觀察名單的$手錶的功能,是我們與$完成消化循環?不,我們再次查看列表並確認沒有任何變化。我們這樣做是因爲當另一個$ watch項目更新它時,可能會更改其中一個值。我們繼續這個循環,直到任何值都沒有變化。

所以我的問題是 - 在什麼情況下,當另一個$ watch項更新它時可能會改變其中一個值?

回答

2

這可能不是實際使用情況下的完美例子,但是這樣的事情可能會發生。

$scope.$watch('Var_A', function(){ 
    // change Var_B 
}); 

$scope.$watch('Var_B', function(){ 
    // do something 
}); 

Var_A和Var_B被放入$ watch列表中。 假設有一個角度變化改變了Var_A,它觸發了第一個$ digest循環,Var_B變化。第一個$摘要循環不知道Var_B已經改變。然後它會再次查看列表,並會發現Var_B發生變化。在此之後,它再次遍歷列表並確保$ watch列表中沒有任何內容被更改。