javascript - 我可以在 Angular JS 中的对象数组中只观察一个变量的变化吗?

标签 javascript arrays angularjs

我有以下变量:

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/

相关文章:

django - 使用 django-angular 和 django-bootstrap3

javascript - NightmareJS 不打开浏览器

javascript - 防止 JavaScript 注入(inject)

javascript - 如果我们正在循环访问当前项目,哪个 for/forEach 的性能更高?

python - 计算列表中单词之间的拼写相似度

javascript - AngularJS - Controller JavaScript $http.get

javascript - 克隆 DOM 节点列表和访问成员未定义

javascript - 将对象转换为数组保留索引

javascript - 使用正则表达式将字符串拆分为 "\\"和 "."

javascript - 我们应该继续在 AngularJS 中使用表单吗?