多次调用角JS摘要循环

问题描述:

我想了解Angular1 $摘要循环。我读过多篇文章,说明每次更改都会多次调用摘要循环。多次调用角JS摘要循环

this文章,它说:

所以一旦我们走过所有的在$观察名单的$手表的功能,是我们与$完成消化循环?不,我们再次查看列表并确认没有任何变化。我们这样做是因为当另一个$ watch项目更新它时,可能会更改其中一个值。我们继续这个循环,直到任何值都没有变化。

所以我的问题是 - 在什么情况下,当另一个$ watch项更新它时可能会改变其中一个值?

这可能不是实际使用情况下的完美例子,但是这样的事情可能会发生。

$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列表中没有任何内容被更改。