javascript - 跳过 $watch 初始调用

标签 javascript angularjs

所以提前为糟糕的标题道歉。我真的不知道这些东西的所有正确 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/

最佳答案

检查这个解决方法

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

$scope.catName = 'Le cat'

$scope.$watch('catName', function (newValue, oldValue) {
    if(oldValue === newValue){
        return;
    }
    //[...]
})

关于javascript - 跳过 $watch 初始调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17023190/

相关文章:

javascript - 如何定位具有相同ID的div

javascript - IndexedDB “and” 和 “or” 查询

javascript - PHP 中的查询语句有未定义的参数

javascript - 如何在屏幕上方显示 Electron 窗口?

css - Angular-ui-grid - 文本装饰不适用于行模板子项

javascript - Angular 指令不在 ng-repeat 内部求值

javascript - 仅在某些 PC 中出现奇怪的错位

javascript - 如何在 Angular 6 中设置背景图像图像路径

javascript - 在jquery中初始化一个函数一次

javascript - 如何仅在 AngularJS 中指向相同的单页面应用程序时才显示后退按钮?