Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularjs如何从返回值中找到正确的属性_Javascript_Angularjs - Fatal编程技术网

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

Javascript angularjs如何从返回值中找到正确的属性,javascript,angularjs,Javascript,Angularjs,angular使用观察程序检测属性更改并调用侦听器函数,例如观察程序声明 $scope.food = "chicken"; scope.$watch( function() { return food; }, function(newValue, oldValue) { if ( newValue !== oldValue ) { // Only increment the counter if the value changed

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; }}
);

第一个参数只是一个返回值的函数,但是angular如何从返回值知道这是食物属性呢。这怎么可能呢?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.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循环的每一轮调用它,这就是计数器递增的原因

看看这个语法:

scope.$watch('food', function(newValue, oldValue) {
});
这与执行以下操作相同:

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

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

没有你想在功能上观看的属性?你误解了这个概念。您编写的监视程序与$scope.food更改检测无关,当$scope.food首先发生更改时,只会再触发一个监视程序,但Angular不会使用自定义监视程序更新$scope.food.有两个方法(),按名称和按函数,这两个方法都可以工作,我测试过,但我想知道第二个(按函数)如何工作是从返回值开始工作的。如何使用JavaScription从返回值中推断正确的变量在函数中没有您想要查看的属性?您误解了这个概念。您编写的监视程序与$scope.food更改检测无关,当$scope.food首先发生更改时,只会再触发一个监视程序,但Angular不会使用自定义监视程序更新$scope.food.有两个方法(),按名称和按函数,这两个方法都可以工作,我测试过,但我想知道第二个(按函数)如何工作从返回值开始工作。如何使用JavaScript从返回值中推断正确的变量?它如何知道该值属于食物变量?如果有另一个变量名为$scope.car=“toyota”,我将其注册到watcher,angularjs知道谁更改了,我认为从返回值中检测哪些变量是不可能的,因为返回值来自函数字符串、int值等。。。但不是变量地址或变量本身,angularjs在这里使用了一种技术,我的问题是如何从返回值中推断出哪个变量,表明它知道这个值属于食物变量?如果有另一个变量名为$scope.car=“toyota”,我将其注册到watcher,angularjs知道谁更改了,我认为从返回值中检测哪些变量是不可能的,因为返回值来自函数字符串、int值等。。。但不是变量地址或变量本身,angularjs在这里使用了一种技术,我的问题是如何从返回值中推断出哪个变量,谢谢Scope。$watch的名称像'food'、'car'等是合理的,您已经给出了哪个变量,但从第二种方法(从函数返回值)中推断出我认为是不可能的。是否存在反射或什么?范围。$watch对“food”和“car”等名称是合理的,您已经给出了哪个变量,但从第二个方法(从函数返回值)进行推断是不可能的。是否存在反射或什么?