不保存骨干模型

时间:2015-06-17 17:13:43

标签: javascript backbone.js

var elementUrlRoot = api_url + '/elements';

var elementModel = Backbone.Model.extend({
    'idAttribute': '_id' //mongoDB
    , 'urlRoot': elementUrlRoot
    , defaults: {
        "signature": "",
        "group": 0
    }//defaults
});

var elementCollection = Backbone.Collection.extend({
    model: elementModel
    , 'url': elementUrlRoot
});

var testmodel = new elementModel({DOM_id: 111});

testmodel.save({signature: "test"},
    {
        error: function (model, response, options) {
            console.log('test model save error:', response);
        },
        success: function () {
            console.log('test model save success');
        }
    }
);

我更新时,我的骨干模型没有保存到服务器。 我已经设置了模型的urlRoot属性(根据文档不应该是必需的)。但是仍然没有发出HTTP请求。

更新

我在回调中添加了一个成功方法。它正在执行中。 但是没有请求被发送到服务器。

更新

我发现了错误。我已添加此代码以保存整个集合。

Backbone.Collection.prototype.syncCollection = function (options) {
    console.log('syncing the collection');
    Backbone.sync("create", this, options);
};

它工作,我能够用它保存集合。 但它似乎导致了保存单个模型的问题。请求在我删除后发出。

1 个答案:

答案 0 :(得分:0)

您的urlRoot是必需的,因为您的模型不是集合的一部分。

尝试取消分配左侧的urlRoot属性 http://backbonejs.org/#Model-urlRoot