所以提前为糟糕的标题道歉。我真的不知道这些东西的所有正确 Angular 术语。
我在一个范围内有这样的代码:
$scope.catName = 'Le cat'
//<-- Magic goes here
$scope.$watch('catName', function () {
//[...]
})
现在,由于 Angular 会等到下一个摘要(这是正确的术语吗?)来评估 watch ,所以我的初始分配(“Le cat”)将触发 watch 。
我希望这个分配不触发 watch ,但在此之后进行更改。
有什么方法可以重置 catName 的“脏状态”吗?
Js-fiddle: http://jsfiddle.net/7DNrD/1/
最佳答案
检查这个解决方法
$scope.catName = 'Le cat'
$scope.$watch('catName', function (newValue, oldValue) {
if(oldValue === newValue){
return;
}
//[...]
})
关于javascript - 跳过 $watch 初始调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17023190/