我需要在项目中的移动检测observableArray 。 在我目前的版本(2.1.0),我通过调用实现这一目标setTimeout
上的所有删除事件和等待,看看add事件紧跟在其高跟鞋:
var delayed = [];
var key; /* obtained by comparing original observableArray with updated list and iterating all differences */
if( /** record exists in original list but not new list ) {
// it was deleted, we don't immediately fire a notification (it may get re-inserted in a moment)
delayed[key] = setTimeout(function() { sendDeleteNotification(key); }, 0);
}
else if( /** record exists in new list but not original */ ) {
if( delayed[key] ) {
// it was deleted and immediately re-added (it's a move)
clearTimeout(delayed[key]);
sendMoveNotification( key );
}
else {
// it was added
sendAddedNotification( key );
}
}
在淘汰赛2.2,我看到了beforeMove和afterMove新事件 。 但是,我找不到任何方式利用它们编程。
最终的目标是要能够反映在立即数据库客户端的变化,但并未显示出添加/代替移动事件的删除。 A记录向上或向下移动在列表中删除,然后新增不应被标记。
可以在新的beforeMove / afterMove绑定在JavaScript中直接使用(如事件模型?)改善呢?
干杯,