Angular:为什么要调用$watch



$scope.$watch正在监视的值在应用程序中不存在时,为什么会调用它?

正如您在下面看到的,无论我为watchExpression分配什么字符串,函数都会运行。。。

$scope.$watch( 'kwhefjkewgfweahhfwujad' , // a bunch of random letters
               function()
                  { console.log("it fired ... why?");
                  }
              ) ;

Firefox没有显示任何错误。

尝试

$scope.$watch( 'kwhefjkewgfweahhfwujad', function(val) {
    if (val) {
        console.log("it fired ... why?");
    }
});

每个摘要周期都有观察者在运行。当您观察附加到作用域的基元值时,您需要验证新值是否存在(并且已经更改)。

你也可以做

$scope.$watch( 'kwhefjkewgfweahhfwujad', function(newVal, oldVal) {
    if (newVal !== oldVal) {
        console.log("it fired ... why?", newVal, oldVal);
    }
});

相关内容

  • 没有找到相关文章

最新更新