对集合中的属性更改做出反应

时间:2014-05-02 03:02:08

标签: javascript angularjs

我有一个附加到$scope的对象集合。其中一个属性是数据绑定到下拉控件。当下拉列表更改时,我想进行AJAX调用并在响应返回时更新活动项的某些值。

我尝试过使用

$scope.$watch('items', function (_old, _new) {
  console.log('hit')
}, true);

这种作品。当我更改下拉菜单时,我看到“点击”被记录到控制台。进一步阅读似乎表明这是效率最低的手表方法,特别是如果项目数量增长超过非平凡大小。

有更好的方法吗?我可以在数据绑定属性发生变化时调度事件吗?

1 个答案:

答案 0 :(得分:0)

这提供了一个很好的解释$ watch $ watchCollection和$ watch(comparor)的每一个

http://www.bennadel.com/blog/2566-scope-watch-vs-watchcollection-in-angularjs.htm

我真的建议给它一个观点。基本上你会想要使用比较器来观察深层价值。

如果性能成为一个问题,您只需要展平您要观看的数据或将其切片。