我有一个附加到$scope
的对象集合。其中一个属性是数据绑定到下拉控件。当下拉列表更改时,我想进行AJAX调用并在响应返回时更新活动项的某些值。
我尝试过使用
$scope.$watch('items', function (_old, _new) {
console.log('hit')
}, true);
这种作品。当我更改下拉菜单时,我看到“点击”被记录到控制台。进一步阅读似乎表明这是效率最低的手表方法,特别是如果项目数量增长超过非平凡大小。
有更好的方法吗?我可以在数据绑定属性发生变化时调度事件吗?
答案 0 :(得分:0)
这提供了一个很好的解释$ watch $ watchCollection和$ watch(comparor)的每一个
http://www.bennadel.com/blog/2566-scope-watch-vs-watchcollection-in-angularjs.htm
我真的建议给它一个观点。基本上你会想要使用比较器来观察深层价值。
如果性能成为一个问题,您只需要展平您要观看的数据或将其切片。