我正在尝试根据 UI 中的拖放事件在两个集合之间移动模型(从一个“框”到另一个)。现在,当我从其原始集合中删除该元素时,它显然不复存在,因为它也没有出现在新集合中(如果我注释掉删除,则其他集合中的外观有效)。
我的直觉是,这是因为每个模型都对应于一个服务器端集合,并且通常从集合中删除某些东西甚至会返回到服务器来杀死它。然而,在这里,我希望我的模型更加自由浮动。那可能吗?我是否错误地使用了 Backbone?
更新
好的,这是我的代码的摘录。如有必要,我可以创建一个小提琴,但也许这有助于突出正在发生的事情:
drop: function(event, ui) {
var item = ui.draggable.data("model");
newcollection.add(item);
console.log(item);
oldcollection.remove(item);
console.log(item);
}
现在,控制台输出如下所示:
d {attributes: Object, _escapedAttributes: Object, cid: "c83", changed: Object, _silent: Object…}
d {_previousAttributes: Object, _pending: Object, _escapedAttributes: Object, changed: Object, _silent: Object…}
显然,模型本身已经发生了变化,而除了从集合中删除之外,什么都没有发生。我现在看到它实际上并没有“不复存在”,但仍然 - ?