4

Backbone.js、Lawnchairbackbone.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からフェッチします。これは少し不格好なようです、そして私はこの権利について考えているのか、それとももっと良い方法があるのか​​と思っていました。

乾杯!

4

1 に答える 1

3

バックボーンは一種のRESTishの原則に従いますが、残念ながらRESTは一括削除手順を記述していません。リソースは一度に1つしか削除できません。通常、APIはコレクションURI全体でHTTPDELETEをサポートしていませんDELETE /favoritesDELETE /favorites/42- 一つずつ。したがって、これを実行する単一のバックボーンメソッドはありません。通常、コレクションはフェッチ/ GETを実行し、個々のモデルに委任して保存と削除を実行するように設計されているためです。そうです、あなたは一括削除のアプローチを自分でやっています。RPCのようなことをして、IDのリストを削除手順に渡すこともできますが、上記の内容は私には完全に適切であるように思われます。もちろん、すべてを直接削除してからコレクションを再フェッチすることも、私には非常に合理的です。ですから、あなたの解決策はそのままで問題ないと思いますが、他の人が何を示唆しているのかも知りたいです。

于 2012-04-05T05:22:17.157 に答える