我正在尝试在我的 <%= render 'layouts/header' %>
中创建“主页”链接执行 ajax/jquery 调用来更改 <%= yield %>
在我的内容 div 内的一部分。我得到的只是 View 中的空白.. <%= yield %>
当放入没有 ajax 的部分时工作正常,但使用 ajax 时它不会显示任何内容...可以 yield
不能这样用吗?
我真正想要的是能够点击我的网站导航链接,而无需重新加载整个页面...
我的 application.html.erb 文件如下所示:
<head>
$(function() {
$("#home").live("click", function() {
$.get(this.href, null, null, "script");
return false; }); });
</head>
<body>
<div id="container">
<%= render 'layouts/header' %>
<div id="content">
<%= render 'layouts/content' %>
</div>
<%= render 'layouts/footer' %>
</div>
</body>
我的<%= render 'layouts/header' %>
包含:
<%= link_to "Home", root_path, :id => "home" %>
我的<%= render 'layouts/content' %>
仅包含:
<%= yield %>
home.js.erb
$("#content").html("<%= escape_javascript(render("layouts/content")) %>");
最佳答案
您的用例完全由rails-ajax解决。 gem 。
您所要做的就是使用 div#content
配置它作为其主要默认容器,您的网站将使用此容器自动进行 ajaxified。无需更改应用程序的代码。
它为您处理了很多麻烦:书签、历史记录、脚本执行、重定向、表单、禁用 JS 的浏览器的回退...
您还可以指定要在某些特定 Controller 的操作上刷新的其他部分。
关于jquery - 将 <%=yield %> 放入 ajax jquery 调用的部分中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4573078/