1

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

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

});
4

1 回答 1

1

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

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

于 2012-07-04T19:30:36.987 回答