如何在创建模型时获取服务器创建的属性

时间:2012-07-04 09:19:20

标签: backbone.js

要创建新模型,我只需要传递一个属性:

model.save({
    name: 'bar'
});

然后服务器将添加额外的属性,例如此模型的id。

实际上,当我创建新模型时,服务器的响应是

  

此请求没有可用的响应数据。

获取服务器创建的额外属性的最佳方法是什么? 我应该修理服务器部分吗?

这是我的代码:

var ListView = Marionette.CompositeView.extend({

    // some code        

    events: {
        'click #create-user': 'createUser'
    },

    createUser: function (e) {
        this.collection.create(this.newAttributes(e));
    },

    newAttributes: function (e) {
        return {
            name: $(e.currentTarget).val(),
        };
    }

    appendHtml: function (collectionView, itemView) {
        collectionView.$el.find('ul.list-users').append(itemView.el);
    }

});

1 个答案:

答案 0 :(得分:1)

这个问题与Marionette无关,Marionette只扩展了视图,而不是模型。

Backbone会自动合并从服务器发回的所有新属性 - 在客户端没有什么特别需要做的。但为了使其工作,您的服务器需要返回您想要设置的属性 - 值对的JSON对象。