在 Backbone.js 中,在我“创建”之后;集合下的模型,如何更新该模型?

发布于 2024-12-19 23:03:05 字数 517 浏览 0 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野味少女 2024-12-26 23:03:06

是的,模型将使用您的服务器返回的任何附加信息进行更新。

这是因为在模型的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 to save, which intern calls model.set within it, in order to update the model with any amended (or new attributes).

As the source code comment for this method states:

If the server returns an attributes hash that differs, the model's state will be set again.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文