angularjs如何从返回值中找到正确的属性

how angularjs finds correct property from return value

本文关键字:属性 返回值 angularjs      更新时间:2023-09-26

angular使用观察者来检测属性更改并调用侦听器函数,例如观察者声明;

$scope.food = "chicken";
scope.$watch(
    function() { return food; },
    function(newValue, oldValue) {
        if ( newValue !== oldValue ) {
        // Only increment the counter if the value changed
           scope.foodCounter = scope.foodCounter + 1; }}
);

第一个param只是一个有返回值的函数,但angular如何从返回值中知道这是食物属性。这是怎么可能的Angular将执行您的函数,存储结果
为了查看是否发生了变化,他只需再次执行该函数,并查看该值是否等于以前的值。

我认为你需要传递你想要监视的内容,每当对象/变量发生变化时,你就会得到旧值和新值

$scope.food = "chicken";
$scope.$watch(function(scope) { return scope.food  },
       function(newValue, oldValue) {
                 //your Code here.It will return the whenever  food value change
        }
 });

看看这个语法:

scope.$watch('food', function(newValue, oldValue) {
});

这和做是一样的

scope.$watch(function() { return food; }, function(newValue, oldValue) {
});

基本上,函数会返回被监视的值,并且在$digest循环的每一圈都会调用它,这就是计数器递增的原因。