aby*_*byx 28 javascript angularjs angularjs-scope
我基本上希望在Backbone的集合中绑定到'add'和'remove'事件.我认为在AngularJS中基本上没办法做到这一点,我们已经解决的当前解决方法是$watch()
使用数组length
并手动区分/重新计算整个事物.这真的是很酷的孩子吗?
编辑:具体来说,观察数组的长度意味着我不知道哪个元素已被更改,我需要手动"diff".
Noé*_*aün 32
我认为使用$watch
是一个很好的解决方案,但$watchCollection
对你来说可能更好.$watchCollection
不执行深度比较,只是观察数组修改,如插入,删除或排序(不是项目更新).
例如,如果要保持attribut order
与数组顺序同步:
$scope.sortableItems = [
{order: 1, text: 'foo'},
{order: 2, text: 'bar'},
{order: 3, text: 'baz'}
];
$scope.$watchCollection('sortableItems', function(newCol, oldCol, scope) {
for (var index in newCol) {
var item = newCol[index];
item.order = parseInt(index) + 1;
}
});
Run Code Online (Sandbox Code Playgroud)
但是对于您的问题,我不知道是否有比手动浏览阵列更好的解决方案来识别更改.
Jas*_*Als 12
在Angular中观看数组的方法是 $watch(array, function(){} ,true)
归档时间: |
|
查看次数: |
34858 次 |
最近记录: |