繁体   English   中英

使用jQuery渲染部分Rails

[英]Render a partial in rails using jquery

我正在尝试在主页上设置一个导航栏,当用户单击链接时,该导航栏会将部分内容加载到div元素中。 我已经按照本文中的步骤进行操作,并根据需要修改了它们: Rails 3-link_to使用jquery ajax来调用局部

我的代码:

视图/页/ home.html.erb:

<%= link_to "Files", :action => 'load_upload_partial', :remote => true %>

<div id="main_frame"></div>

pages_controller:

def load_upload_partial  
    respond_to do | format |  
      format.js {render :layout => false}  
    end
end

/views/uploads/load_upload_partial.js.erb:

$("#main_frame").html( "<%= escape_javascript( render( :partial => "/upload/upload_form" ) %>" );

在此示例中,partial只是一种形式。 当我单击链接时,我得到的空白页是地址栏: http:// localhost:3000 / load_upload_partial?remote = true

这使我认为该链接未触发ajax GET请求(如果这是正确的术语)。 如果是这种情况,我需要添加任何内容到我的application.js文件中吗? 我在rails和jquery上遵循了railscast#136,但无法弄清楚application.js代码的哪些位适用于我的案例。 任何想法都非常感激。 谢谢。 汤姆

我现在倾向于避免像您打算的那样使用RJS。 我更喜欢使用诸如把手之类的工具来创建js模板。

我仅使用ajax来获取原始数据,然后重新创建部分客户端。 服务器负载和数据传输要好得多。

遇到了同样的问题-提示出现在格式错误的html中-看一下代码生成的标记的href属性值。 我敢打赌它看起来很时髦。 这是正确的代码:

    <%= link_to "Files", your_path, action: 'load_upload_partial', remote: true %>

我认为您必须将link_to更改为:

<%= link_to "Files", {:action => 'load_upload_partial' }, remote => true %>

问题与link_to的方法签名有关。

您是否尝试过使用.load()而不是.html()?

另外,请尝试使用此行:

$("#main_frame").html( "<%= escape_javascript( render( :partial => '/upload/upload_form' ) %>" );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM