【问题标题】:Rails 3 - Link to :remote, updating the address URLRails 3 - 链接到 :remote,更新地址 URL
【发布时间】:2011-12-21 23:44:10
【问题描述】:

我目前正在通过以下方式更新页面内容:

<%= link_to(content_tag(:span, 'Settings'), edit_admin_store_path, :remote => true)%>

像这样使用javascript:

  $('nav li a').bind("ajax:success", function(event, data){
    console.log(event + data);
    $('div#loading').hide();
    $('div#container div#content').html(data).hide().fadeIn('100');
  });

想知道是否有“rails 方式”也可以更新地址 url?

非常感谢任何帮助/建议!

【问题讨论】:

    标签: ruby-on-rails ajax ruby-on-rails-3 link-to


    【解决方案1】:

    基本上,您要求的是 HTML5 history.pushState 方法。很棒的文档可以在here, at the mozilla developers network.找到。

    简单来说,您可以通过执行以下操作来推动历史:

    var stateObj = { foo: "bar" };
    history.pushState( stateObj, "new page title", "forbear.html" )
    

    这将导致 URL 显示 http://www.yoursite.html/whatever/foobar.html,具体取决于 URL 当前的样子。

    干杯!

    【讨论】:

    • 有没有在 HTML5 之前有效的选项?如果后退按钮也能正常工作,我会对在 URL 中添加#hashes 感到满意。例如,这与 Pjax 之类的东西有什么关系?
    • Ore HTML5,这是一个非常困难的任务。因此到达HTML5。您可以将片段添加到 URL,但每次删除/更改 DOM 时都需要手动更新 DOM。我不建议这样做。您将使用 history.js 来自动化后者,而不是自己做。
    • 这为我指明了正确的方向。我最终使用了 PJAX 并对其进行了自定义以与 rails 很好地配合使用。谢谢你的建议。
    猜你喜欢
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多