将 JSON 从 Backbone.js 传递到 Rails 2

发布于 2024-12-17 00:39:02 字数 215 浏览 0 评论 0原文

当 Backbone.js 将数据传递到服务器时,它不会嵌套 CGI 参数 像 Rails 期望的那样,在模型名称哈希中,所以你必须从所有模型名称中选出它们 通过 Hash.select 或反向合并或控制器操作中的其他一些 hack 来设置其他参数,或者使用 Backbone 中的 emulateJSON hack 将所有值 JSON 编码为 单个“模型”参数并在控制器中对其进行解码。双方是否有更优雅的解决方案?

When Backbone.js passes data to the server, it doesn't nest the CGI params
in a model-name hash like Rails expects, so you have to pick them out of all
the other params via Hash.select or a reverse merge or some other hack in the controller action, or use
the emulateJSON hack in Backbone which JSON-encodes all the values in to a
single "model" parameter and decode them in the controller. Is there a more elegant solution on either side?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

夏天碎花小短裙 2024-12-24 00:39:02

您可以在每个骨干模型中重写 toJSON() ,以便它为自己提供一个根元素。例如:

toJSON: function() {
  return {modelname: _.clone(this.attributes)}
}

在模型基类中推广这一点也很容易,也许可以检查模型的“jsonRoot”属性或类似属性是否存在。

You can override toJSON() in each Backbone Model so that it gives itself a root element. For example:

toJSON: function() {
  return {modelname: _.clone(this.attributes)}
}

It is also easy to generalize this in a model base class, perhaps checking for the existence of a Model's 'jsonRoot' property or similar.

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