【问题标题】:Update id after collection.create in Backbone.js在 Backbone.js 中的 collection.create 之后更新 id
【发布时间】:2013-04-01 09:55:29
【问题描述】:

在集合上,我使用 create 函数将模型的新实例保存到服务器。此 POST 请求成功,我返回新模型。

{id:135, type:tweet, start:08:00:00, end:14:00:00, text:foo, date:2013-04-01}

但是,我需要使用从服务器返回的新 model.id 更新集合,并且似乎 create 中的 sync 方法 不这样做。我是否应该向 create 函数添加一个回调,以使用更改的属性更新模型?

var AddScheduleBlock = Backbone.View.extend({
    saveScheduleBlock: function (ev){ 
        var text = "foo"

        this.model.set({
            text: text
        });

        var block = blockCollection.create(this.model, {
                silent: true,
                wait: true
            });
});

【问题讨论】:

  • 您是如何在 collection.create 上获取模型 ID 的?我正在创建一个新模型,但我没有恢复 id 属性。

标签: javascript jquery model-view-controller backbone.js


【解决方案1】:

Backbone 的 Collection create 方法调用 Model save 下面的方法 (code reference)。您不需要自己设置 id,Backbone 会为您完成。

Model save 方法将响应属性设置到模型中 (code reference)

如果创建没有完成工作,你应该尝试调试它。

【讨论】:

  • 这是一个非常愚蠢的错误,我的 RESTful 服务器返回的是包含在数组中的模型而不是对象本身。不过感谢您的帮助。
猜你喜欢
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多