【发布时间】:2017-08-21 08:05:01
【问题描述】:
我有一个包含十个对象的数组。它们中的每一个都包含六个属性并显示视图中的所有内容。用户可以通过在输入上键入新数据来更改属性。如何查看整个数组并确定哪个对象上的哪个属性已更改,并且不重复我的代码 10 次以便分别查看每个对象?
【问题讨论】:
标签: javascript angularjs
我有一个包含十个对象的数组。它们中的每一个都包含六个属性并显示视图中的所有内容。用户可以通过在输入上键入新数据来更改属性。如何查看整个数组并确定哪个对象上的哪个属性已更改,并且不重复我的代码 10 次以便分别查看每个对象?
【问题讨论】:
标签: javascript angularjs
您可以使用$watchCollection
$scope.$watchCollection('data', function (newVal, oldVal) { /*...*/ });
【讨论】:
通常,观看大量对象集合是个坏主意,因为 angularjs 将对每个摘要循环执行相等性检查。如果您确实需要这样做,$scope.$watch 函数有第三个参数objectEquality,您可以在其中传递布尔函数,如果旧值等于新值则返回 true。您也可以将true 传递给第三个参数。
$scope.$watchCollection(obj, listener); 是另一种选择。
【讨论】: