2011-10-20 63 views
3

我有一个Backbone.js集合,并希望同时从中删除几个元素。我也想删除已删除模型的视图元素。从Backbone.js的集合中删除多个元素

问题是如果我使用collection.remove(arrayOfModels),它会触发多个DELETE请求。这是糟糕的表现,而且如果出现问题,我可能想要取消整个批次的删除。因此,我想用删除的元素列表作为参数发出一个请求。

这里最好的办法是什么?我应该重写Backbone.sync并以某种方式聚合已删除元素的ID以进行单个请求?或者只是手动提出请求并触发每个已删除模型的“删除”事件以隐藏其视图?

回答

4

我认为最简单的&干净的方法是让你自己的,具体的ajax请求,发送到服务器您想要删除的模型的ID。

服务器在成功时返回模型的ID,并且您的ajax成功回调可以使用它从集合中删除这些模型。这将触发相应视图监听的事件,所以他们隐藏自己。

+0

谢谢,我结束了这一切 - 发送一个$ .ajax请求的ID,并删除'成功'回调中的命名模型。 – kulesa