【问题标题】:Changing from jQuery BBQ to History.js in a Rails 3.2.8 application在 Rails 3.2.8 应用程序中从 jQuery BBQ 更改为 History.js
【发布时间】:2012-11-14 02:52:24
【问题描述】:

我在页面上用一个又大又丑的不可见表单来管理状态。我会在 click 事件上序列化表单中的值并执行 ajax 提交,这将为页面上的 div 提供内容。我正在序列化和反序列化大表单中的值,并使用 jQuery BBQ 插件(我从未完全理解)来管理状态。

我正在尝试在我的应用程序中重做 jQuery BBQ 东西以使用 history.js。我将ajaxify-html5 gist 插入了我的应用程序。

我的应用程序深入到一个数据库表中,将该表中的列作为页面上的链接列出。他们有“.attrs”类分配给他们。

我看到ajaxify 中调用的“点击”事件。看起来它调用了 History.pushState,我想它就像 bbq.pushState 一样,它会为我完成我的提交。

虽然我的 URL 保持不变,但我的请求似乎没有像我在 Rails 应用程序中预期的那样执行。我正在使用的示例 URL 是:

http://myapp/brands/get_attributes?brand_id=539page_attribute=attribute1&attribute1=Whirlpool

当我使用 BBQ 插件时,我指定了发送给 $.ajax() 调用的哈希值,如下所示:

hash = type: "POST", url: "brands/get_attributes", data: $("#buyersguideform").serialize()

由于它是在执行 Ajax 请求,Rails 会识别它并使用适当的 .js.erb 模板进行响应。

不幸的是,我的 URL 似乎没有包含足够的信息来告诉 History.js 提出什么样的请求。因此,代码正在执行一个常规的旧 GET 请求,甚至没有在控制器中获得正确的 get_attributes 操作。

我真的需要用这个 History.js 解决这些问题:

1) 弄清楚如何摆脱我构建的疯狂的本土状态管理隐形形式。我已经开始使用我正在生成的参数化 URL 来做到这一点。我只是不确定如何从一个 Ajax 请求到下一个请求。换句话说,我不知道应该何时/如何使用getState()

2) 了解如何让 History.js 执行 Ajax POST 而不是非 Ajax GET。

3) 了解更多this gist。说明说我所要做的就是插入脚本,但显然声明部分提到了一些我应该以某种方式在我的应用程序中工作的类。

我是状态管理的新手,因此有点不知所措。我已经在这工作了 8 个小时,并且正在取得一些进展,但是速度非常慢。非常感谢任何帮助。

更新 1:

我可以看到,gist 只会做GETs,因为它没有在提供给$.ajax() 调用的哈希中指定type 键。当我在那里对其进行硬编码时,它当然会执行POST。经过进一步审查,我似乎不需要使用要点。

看起来我错了,History.pushState() 会以某种方式为我执行 Ajax 请求。它似乎只将条目推送到状态。这是完全合适的。我感到困惑的原因是这个应用程序以前使用了一个 pushState 包装器,它可以处理状态管理和随后的 Ajax 请求。因此,当我不使用要点时,我的 Ajax 帖子没有发生的原因是它一开始就不应该发生。

【问题讨论】:

    标签: ruby-on-rails-3.2 history.js


    【解决方案1】:

    History.js 插件似乎只有付费支持。虽然看起来它可能做得很好,但我一直无法真正找到关于使用它的任何真正答案。如果您是 Javascript 专家,正如作者对他自己所说的那样,那么您可能会做得很好。如果您对状态管理比较陌生并且正在寻找文档,那么您可能会遇到困难。

    我已经回到 BBQ 插件来满足我的简单需求,它工作正常。它比 History.js 插件记录得更完整。我确信 History.js 的功能更胜一筹。当文档赶上并且我能够得到问题的答案时,我会切换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      相关资源
      最近更新 更多