Javascript angularjs:$观察两个变量,如果只有一个变量发生变化,就采取行动

Javascript angularjs:$观察两个变量,如果只有一个变量发生变化,就采取行动,javascript,angularjs,Javascript,Angularjs,我想监控一个特定的变量 $scope.$watch('action', function() { /* do something */ } 但是,我只想在$scope.id没有改变的情况下做一些事情(如果$scope.action改变,那么$scope.id也可能改变了。) 我能想到的唯一解决办法是 $scope.$watch('action', function() { if(idHasChanhed === false){ /* do something */

我想监控一个特定的变量

$scope.$watch('action', function() { /* do something */ }
但是,我只想在
$scope.id
没有改变的情况下做一些事情(如果
$scope.action
改变,那么
$scope.id
也可能改变了。)

我能想到的唯一解决办法是

$scope.$watch('action', function() { 
    if(idHasChanhed === false){
        /* do something */ 
    }
    idHasChanged = false;
});
$scope.$watch('id', function() { idHasChanged = true }
但是,我想知道angular是否有比此更好的解决方案,我不知道此解决方案是否始终有效(是$watchs随机执行的顺序!?)

我的解决方案:

$scope.$watch('[action,id]', function() { 
   // called when action or id changed
});
信息:字符串连接
操作+id
将失败。

我的解决方案:

$scope.$watch('[action,id]', function() { 
   // called when action or id changed
});
var action,id;   // variables you need to watch
 $scope.$watch('action + id', function() { 
       // actions
    });
信息:字符串连接
操作+id
将失败

var action,id;   // variables you need to watch
 $scope.$watch('action + id', function() { 
       // actions
    });
$watchGroup此功能在Angular1.3中引入。这与$watch()函数的工作原理相同,只是第一个参数是要监视的表达式数组

使用
$watchGroup

$scope.$watchGroup(['action', 'id'], function(newVal, oldVal) {
    //write your code here
});
$watchGroup此功能在Angular1.3中引入。这与$watch()函数的工作原理相同,只是第一个参数是要监视的表达式数组

使用
$watchGroup

$scope.$watchGroup(['action', 'id'], function(newVal, oldVal) {
    //write your code here
});

嗯,我现在已经实现了它,我得到了以下错误:
error:[$rootScope:infdig]10$digest()次迭代。流产它一直被触发,数据没有变化。结果表明,我的问题与问题是重复的。嗯,我现在已经实现了它,并且出现了以下错误:
错误:[$rootScope:infdig]10$digest()迭代次数。流产它一直被触发,数据没有变化结果显示我的问题是问题的重复