3

我已经扩展了 Backbone Collection 类以包含一个“保存”方法,它本质上是一个同步代理。每当执行“保存”时,就会将一组对象提交到后端。但是,后端目前的结构不能直接处理集合,它需要对象。有没有人对我如何将这个集合“包装”在一个对象中有任何建议?

我试过了:

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);
    }
});

还有一个 Fiddle http://jsfiddle.net/xx4pr/(检查你的控制台查看请求)

于 2012-06-20T17:15:05.460 回答