【问题标题】:Update backbone model with new json用新的 json 更新骨干模型
【发布时间】:2014-08-11 05:59:05
【问题描述】:

现在,我像这样将 json 传递给模型:

model m = new app.SomeModel(json);

然后使用它,这似乎很好。

但是,现在每当我的 json 更改时,我想将新的 json 传递给模型,而不创建模型的新实例,例如:

m.updateJson(json);

编辑:现在我正在做类似的事情:

m.set(json)

但是我们也可以这样做:

m.set("json_key",json)

这样以后我就可以做到了:

m.get("json_key") 

要获取整个 json 吗?

【问题讨论】:

标签: backbone.js backbone-model


【解决方案1】:

只要使用model.set,它就会触发“change”事件,并更新依赖对象

setmodel.set(attributes, [options]) 设置属性的哈希值(一个或 许多)在模型上。如果任何属性改变了模型的状态, 将在模型上触发“更改”事件。更改事件 还会触发特定属性,您可以将其绑定为 好吧,例如:change:title 和 change:content。你也可以通过 单独的键和值。

note.set({title: "March 20", content: "在他眼里她黯然失色..."});

book.set("title", "A Scandal in Bohemia");

如果您需要触发“sync”事件,则在您更新模型问题后 model.trigger("sync")

【讨论】:

  • 我读过这个,但我的问题是我的 json 很大,我不能单独设置每个属性,所以我试图在 1 中更新整个 json !!
  • Set 支持这个,看样例 note.set({title: "March 20", content: "In his eyes she eclipses..."});这会同时更新 2 个字段
  • 我们也可以这样使用model.set吗:note.set("json_key",json_value); where json_value = {title: "March 20", content: "In his eyes she eclipses..."} ?