我有以下变量:
var $scope.abc = [{"a":22,"b":"x"},{"a":33,"b":"y"}];
是否可以对此进行监视并仅监视字段 a
的值发生变化?
最佳答案
Is it possible to do a watch on this and watch for just the value of the field a changing
当然。
如果您只想监视值a
,您可以为(假设a
是输入)输入定义
。 ng-change
>一个
HTML
<div ng-controller="Controller">
<div ng-repeat="val in abc">
<input type='text' ng-model='val.a' ng-change="onAChange(val.a)">
<input type='text' ng-model='val.b'>
</div>
</div>
JS
$scope.onAChange = function(mod){
console.log(mod);
};
演示 1 Plunker
另一种方式,在所有对象 abc
上 $watch
并编写“深度”监视,如下所示:
$scope.$watch(function () {
return $scope.abc[0].a;
},
function (newValue, oldValue) {
if(newValue == oldValue){return;}
console.log(newValue, oldValue);
}, true);
演示 2 Plunker
附注:
在 $scope.abc
之前不需要 var
。
关于javascript - 我可以在 Angular JS 中的对象数组中只观察一个变量的变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20028505/