4

我正在使用 Backbone.js、Lawnchairbackbone.lawnchair.js

我想知道“清空”集合(来自应用程序和本地存储)的正确方法是什么?

目前,我正在使用这些方面的东西:

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 中获取。这似乎有点笨拙,我想知道我是否正在考虑这个权利 - 或者是否有更好的方法。

干杯!

4

1 回答 1

3

Backbone 遵循某种 RESTish 原则,遗憾的是 REST 没有描述批量删除过程。一次只能删除一个资源。通常,API 不支持对整个集合 URI 进行 HTTP DELETE,DELETE /favorites例如DELETE /favorites/42- 一次一个。因此,没有单一的主干方法可以做到这一点,因为通常集合主要设计用于获取/获取,然后委托给各个模型进行保存和删除。所以,是的,您可以自行使用批量删除方法。你可以做一些更像 RPC 的事情,并将一个 ID 列表传递给一个删除过程,但是你上面的内容对我来说似乎完全足够了,是的,直接删除它们然后重新获取集合对我来说似乎也很合理。所以我认为你的解决方案很好,但我也很想看看其他人的建议。

于 2012-04-05T05:22:17.157 回答