Ed *_*nes 13 jquery ruby-on-rails rjs
我不敢相信我这个简单的任务已经花了四个小时,但我有.
在Rails 2.3中,我可以用这个简单的代码替换页面的一个部分:
渲染:更新do | page | page.replace_html"div_id",:partial =>"new_content",...结束
在Rails 3中,Ryan Bates让我编写了全新的javascript函数,从Prototype(rails默认)切换到jQuery,否则就不能享受生活.其他的tutes不再那么简单.
我错过了什么?我们如何取代<div>
这些日子?
Ed *_*nes 12
多谢你们.官方的答案似乎是,是的,团队觉得简单是善的敌人,使其变得更加复杂.
第一个关键是为方法调用ajax更新创建一个.js.erb文件NAMED.因此,如果索引方法处理更新,请将原始javascript放入index.js.erb
.这将在views文件夹中.
其次,在index.js.erb中工作的代码是
m = $('list_users');
m.innerHTML = "<%= escape_javascript(render :partial => "reload_users") %>";
Run Code Online (Sandbox Code Playgroud)
然后进行调用,添加控制器方法的respond_to块,添加:
format.js
Run Code Online (Sandbox Code Playgroud)
最后,调用视图具有:
<%= link_to "Update User List", @reload_users_path, :remote => true %>
Run Code Online (Sandbox Code Playgroud)
顺便说一句,page.replace
如果你安装了一个插件,据说所有旧的页面都可以使用.插件下载页面表明它在Rails 3的最新版本中已经破坏并且尚未修复.此外,如果您使用它,各种博客将来到您的家和桦树切换你.
你那里还有 jQuery 吗?任何一天我都会推荐它而不是原型......
如果它仍然存在,您可以在 Javascript 中使用以下内容:
$.get("<%= url_for path/to/partial %>",
function(response) {
$("#div_id").html(response);
});
Run Code Online (Sandbox Code Playgroud)
这通过 AJAX 获取部分内容并将其转储到 ID 为 div_id 的 div 中。
希望这可以帮助!
归档时间: |
|
查看次数: |
11290 次 |
最近记录: |