gpt4 book ai didi

javascript - backbone.js:从集合中删除后保留元素

转载 作者:行者123 更新时间:2023-11-28 20:44:26 25 4
gpt4 key购买 nike

我正在尝试根据 UI 中的拖放事件在两个集合之间移动模型(从一个“框”到另一个“框”)。现在,当我从原始集合中删除该元素时,它显然不再存在,因为它也不会出现在新集合中(如果我注释掉删除,则其他集合中的出现也有效)。

我的直觉是,这是因为每个模型都对应于一个服务器端集合,并且从集合中删除某些内容通常甚至会返回到服务器来杀死它。然而,在这里,我希望我的模型更加自由 float 。那可能吗?我是否错误地使用了 Backbone?

更新

好的,这是我的代码的摘录。如果有必要,我可以创建一个 fiddle ,但这也许有助于突出显示正在发生的事情:

    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…}

很明显,模型本身已经发生了变化,而除了从集合中删除之外没有发生任何其他事情。我现在发现它实际上并没有“不再存在”,但仍然 - ?

最佳答案

从集合中删除模型不会从服务器中删除该模型。这就是 model.destroy() 的作用。 Here's the source of Collection.remove 。当对 Backbone 有疑问时,请直接查找源头。它很小,很容易阅读和理解。

您的代码中其他地方可能有错误,但我们需要代码示例或 jsfiddle 来帮助您找到它。

关于javascript - backbone.js:从集合中删除后保留元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13737538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com