我使用的是Backbone.js,Lawnchair和backbone.lawnchair.js。
我想知道“清空”一个集合(来自应用程序和localStorage)的正确方法是什么?
目前,我正在采用以下方面的内容:
Favorites.Collection = Backbone.Collection.extend({
model: Favorites.Model,
lawnchair: new Lawnchair({ name: "favorites" }, function(e){}),
empty: function(){
this.lawnchair.nuke();
this.fetch();
}
});
这实际上是在破坏localStorage中的元素(lawnchair提供nuke方法)并从localStorage中获取。这看起来有点笨拙,我想知道我是否正在考虑这个问题 - 或者是否有更好的方法。
干杯!
答案 0 :(得分:3)
Backbone遵循一些RESTish原则,遗憾的是REST没有描述批量删除过程。资源只能一次删除一个。通常,API不支持整个集合URI上的HTTP DELETE,例如DELETE /favorites
,只支持DELETE /favorites/42
- 一次一个。因此,没有单一的骨干方法可以做到这一点,因为通常集合主要用于执行fetch / GET,然后委托各个模型进行保存和删除。所以是的,你可以自己做批量删除的方法。你可以做类似RPC的事情,并将一个ID列表传递给删除程序,但你上面的内容对我来说似乎是完全适合的,是的,直接删除它们然后重新获取集合对我来说似乎也很合理。所以我认为你的解决方案很好,但我也很想知道别人的建议。