我有一个Backbone.js集合,并希望同时删除它中的一些元素。我还想删除已删除模型的视图元素。
问题是,如果我使用collection.remove(arrayOfModels)
,它会触发多个DELETE请求。这是性能不好的,如果出现问题,我可能还想取消整批的删除。因此,我希望将已删除元素列表作为参数发出单个请求。
这里最好的方法是什么?我是否应该覆盖Backbone.sync
并以某种方式聚合已删除元素的ID以进行单个请求?或者只是手动发出请求并为每个已删除的模型触发“删除”事件以隐藏其视图?
答案 0 :(得分:4)
我认为最简单的&干净的方法是让你自己,特定的ajax请求,向服务器发送你想要删除的模型的id。
服务器在成功时返回模型的id,你的ajax成功回调可以使用它来从集合中删除这些模型。这将触发相应视图侦听的事件,因此他们隐藏自己。