在 Backbone.js 中,在我“创建”之后;集合下的模型,如何更新该模型?
Posts.create({'body':post_body});
当我调用它时,Backbone 将通过 AJAX post 请求访问我的服务器,创建该帖子。然后,我的服务器将返回带有“完整”帖子的 JSON。
完美的!但现在,我希望新创建的模型拥有完整的数据。换句话说,我不希望它只有 body 属性。 (我的所有其他模型都有其他数据)。
我的问题是:
- 因为我的服务器返回了完整的 JSON,backbone 会自动使用“完整”数据更新模型吗?
- 如果没有,我怎样才能让 Backbone 更新该模型,使其数据完整?
编辑:我这样做了,似乎 Backbone 自动使用返回的数据作为新模型。有人可以确认吗?
success:function(post){
console.log(post.toJSON()); //Yay! latest version.
},
Posts.create({'body':post_body});
When I call that, Backbone will hit my sever with an AJAX post request, creating that post. My server will then return a JSON with the "full" post.
Perfect! But now, I want the newly created model to to have the full data. In other words, I don't want it to only have the body attribute. (all my other models have other data).
My question is:
- will backbone automatically update the model with the "full" data because my server returned that full JSON?
- if not, how can I get Backbone to update that model so its data is full?
Edit: I did this, and it seems like Backbone automatically uses the data returned as the new model. Can someone confirm?
success:function(post){
console.log(post.toJSON()); //Yay! latest version.
},
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,模型将使用您的服务器返回的任何附加信息进行更新。
这是因为在模型的
create
方法下,有一个对save
的调用,intern在其中调用了model.set
,以便更新具有任何修改(或新属性)的模型。正如此方法的 源代码 注释所述:
Yes, the model will be updated with any additional info your server returns.
This is because under the model's
create
method, there is a call tosave
, which intern callsmodel.set
within it, in order to update the model with any amended (or new attributes).As the source code comment for this method states: