3

Backbone Collectionクラスを拡張して、本質的に同期するプロキシである「save」メソッドを含めました。「保存」が実行されるたびに、オブジェクトの配列がバックエンドに送信されます。ただし、バックエンドは現在、ストレートコレクションを処理するように構成されておらず、オブジェクトを想定しています。このコレクションをオブジェクトに「ラップ」する方法について誰か提案がありますか?

私は試した:

var objectCollection = {};
objectCollection['key'] = backboneCollection.models;

しかし、上記の結果、「モデルにはtoJSONメソッドがありません」というエラーが発生します。これは、単に同期をプロキシしているためです。ありがとう。

4

1 に答える 1

3

のカスタム形式を提供するにはBackbone.sync、データをJSON文字列として渡し、正しいを提供する必要がありますcontentType。このようなもの:

var M=Backbone.Collection.extend({
    url: '/echo/json/',

    save: function() {
        var data={}, opts= {};
        data.key=this.toJSON();

        opts.contentType = 'application/json';
        opts.data = JSON.stringify(data);

        Backbone.sync.call(this,'update',this, opts);
    }
});

そしてフィドルhttp://jsfiddle.net/xx4pr/(リクエストを確認するにはコンソールをチェックしてください)

于 2012-06-20T17:15:05.460 に答える