在angularjs中$ watch的目的是什么?

时间:2016-06-06 09:35:51

标签: angularjs

在angularjs中$ watch的目的是什么。任何人都可以解释它是如何工作的,以及$ watch的目的是什么。提前致谢

2 个答案:

答案 0 :(得分:0)

看一下Angular文档,它们通常非常好并且包含示例。

  

$watch(watchExpression, listener, [objectEquality]);

     

注册要在每次执行时执行的侦听器回调   watchExpression发生了变化。

https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$watch

答案 1 :(得分:0)

$ scope.watch()函数创建一个变量的监视。注册手表时,您将两个函数作为参数传递给$ watch()函数:

  1. 值函数
  2. 听众功能
  3. 以下是一个例子:

    $scope.$watch(function() {},
                  function() {}
                 );
    

    第一个函数是值函数,第二个函数是监听器函数。

    值函数应返回正在监视的值。然后,AngularJS可以根据watch函数上次返回的值检查返回的值。这样AngularJS可以确定值是否已更改。这是一个例子:

    $scope.$watch(function(scope) { return scope.data.myVar },
                  function() {}
                 );
    

    此示例valule函数返回$ scope变量scope.data.myVar。如果此变量的值发生更改,则将返回不同的值,AngularJS将调用侦听器函数。

    如果值已更改,则侦听器函数应执行其需要执行的操作。也许您需要更改另一个变量的内容,或者设置HTML元素的内容或其他内容。这是一个例子:

    $scope.$watch(function(scope) { return scope.data.myVar },
                  function(newValue, oldValue) {
                      document.getElementById("").innerHTML =
                          "" + newValue + "";
                  }
                 );
    

    此示例将HTML元素的内部HTML设置为变量的新值,嵌入在b元素中,使值变为粗体。当然,您可以使用代码{{data.myVar}完成此操作,但这只是您在侦听器函数中可以执行的操作的示例。

    希望对你有所帮助。