1

モデルのコレクションを返す API がありますが、Backbone が期待する従来の形式 (モデルの配列) ではありません。代わりに、コレクションにはいくつかのグローバル プロパティがあり、モデルはコレクションのプロパティに割り当てられた配列にあります。このようなもの:

{
    foo: 'bar',
    models: [
        { id: 1, prop1: 'abc' },
        { id: 2, prop1: 'xyz' },
        { id: 3, prop1: '123' }
    ]
}

API を変更することはできないため、このデータ形式を使用する必要があります。バックボーン コレクションがモデルの配列だけを取得するようにデータを処理するにはどうすればよいですか? モデルで同様の状況が発生し、モデル データで正しいプロパティを返すカスタム toJSON() メソッドを作成しましたが、ここでは機能しないようです。

4

1 に答える 1

2

parseコレクションのmethodをオーバーライドする必要があります。ここでは、応答オブジェクト全体を取得し、バックボーンがコレクションに入力するために使用する配列を返す必要があります。

var MyCollection = Backbone.Collection.extend({
    parse: function(response) {
        return response.models;
    }
});
于 2013-09-07T20:13:02.577 に答える