7

所以提前为这个可怕的标题道歉。我真的不知道这些东西的所有正确的角度术语。

我在范围内有这样的代码:

$scope.catName = 'Le cat'

//<-- Magic goes here

$scope.$watch('catName', function () {
    //[...]
})

现在由于 Angular 等到下一个摘要(这是正确的术语吗?)来评估手表,我的初始分配('Le cat')将触发手表。

我希望这个分配不会触发手表,但在此之后会发生变化。

有什么方法可以重置 catName 的“脏状态”吗?

Js-fiddle:http: //jsfiddle.net/7DNrD/1/

4

1 回答 1

16

检查此解决方法

http://jsfiddle.net/7DNrD/5/

$scope.catName = 'Le cat'

$scope.$watch('catName', function (newValue, oldValue) {
    if(oldValue === newValue){
        return;
    }
    //[...]
})
于 2013-06-10T12:03:25.403 回答