1

私は Backbone.js を使って最初の一歩を踏み出しました。そのうちの 1 つは、コレクションからアイテムを削除できるようにすること、そしてさらに重要なことに、そのアイテムを取得できるようにすることです。Backbone.Collection.remove メソッドは、アイテムが削除された元のコレクションを返すだけなので、現時点では、削除する前に目的のアイテムへの参照を取得しています。

var Collection = Backbone.Collection.extend(...array of Backbone.Models...),
    removedItem = Collection.get(3);
console.log(Collection.remove(3));//same collection sans #3

私の質問は、削除アイテムを取得するための簡単な方法があるかどうかです。

編集: JFTR、ソースのかなりの部分を読み、元のメソッドがコレクションへの参照を返すことを知っています -

remove: function(models, options) {
  // <snip for brevity>
  // chain pattern incoming
  return this;
},

削除されたアイテムが返されなかったのは奇妙に思えたので、欠落している別の方法があるかどうか、またはこのパターンを達成する一般的な方法があるかどうか疑問に思っていました。APIに秘密のドゥーヒッキーがあったときに長い回避策を使用したのは初めてではありません...そのままなので、おそらくクラスを拡張します。

4

1 に答える 1

1

Backbone.Collection の「タイプ」に関数を追加し、作成するすべてのコレクションで removeModel を使用できます。

Backbone.Collection.prototype.removeModel(model) {
    var _model = this.get(model);
    this.remove(item);
    return _model;
}

var removedModel = collection.removeModel(model);
于 2012-04-19T07:37:48.447 に答える