所以我有一个页面,用户在其中通过复选框从可用选项列表中进行选择。 我有3个系列:一个用于可能的选项列表,一个用于当前保存的选项以及已保存选项的克隆。我使用克隆列表添加/删除选项,因为他们点击复选框。backbone.js批量更新
var possibleOptions = new Backbone.Collection("/options");
var currentUserOptions = new Backbone.Collection("/useroptions", { id: 2 });
var clonedUserOptions = new Backbone.Collection(currentUserOptions.toJSON());
被采取这种做法的原因是,用户可以取消该选项页编辑中期如此想要的选项坚持在单击保存按钮。克隆的选项在选项被选中/未选中时被正确更新。但是,当我尝试更新真实列表时,似乎没有任何事情发生。
currentUserOptions.update(clonedUserOptions.toJSON());
我的期望是,骨干会触发新车型POST请求,并删除了根据文档(http://documentcloud.github.com/backbone/#Collection-update)每个缺少的模型。如果我误解了这个假设如何工作,请让我知道。一个简单的正确方法的实例将不胜感激。
感谢, CF
更新'currentUserOptions'您还需要保存它们后。像'currentUserOptions.each(function(item){item.save();})'''可以工作,或者至少是一个好的开始。 – 2013-03-11 19:29:43
感谢Paul的回复,但那些已删除的选项呢?在执行currentUserOptions.each时,它们不再存在。 – user2158070 2013-03-11 19:39:39
嗯好点。 'update'并不是真的要这样使用,更多的是用来自服务器的数据更新你的集合。 – 2013-03-11 19:42:42