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()迭代次数。流产代码>它一直被触发,数据没有变化结果显示我的问题是问题的重复