是否可以通过将函数绑定到超链接来呈现部分?
我有一个超链接:
查看所有图像
我在application.js中有这样的代码:
$("#allimages").click(function() {
$("#results").html("<%= escape_javascript(render 'images') %>");
});我猜ruby erb的东西从来没有像那样执行过。而“呈现”在Javascript的上下文中没有任何意义。但我不想仅仅为了显示另一个页面而对服务器进行完整的调用。有什么方法可以只使用Javascript来显示部分内容吗?除了显示页面和调用visible on/off?
发布于 2010-11-23 03:50:13
我认为你混淆了application.js (纯javascript)和控制器返回的erb处理过的javascript (.js.erb)文件。
你需要做一些类似这样的事情(未经测试):
将click处理程序设置为执行ajax请求:
$("#allimages").click(function() {
$.get('something/image_results');
});在你的SomethingController中
class SomethingController < ApplicationController
respond_to :js, :only => [:image_results]
def image_results
@images = do_something
end
end(请确保也在routes.rb中添加image_results的路由。)
然后在image_results.js.erb文件中:
$("#results").html("<%= escape_javascript(render 'images') %>");这里的关键点是,因为您现在处于一个由erb处理的文件中,所以您可以使用ruby。
唯一不需要另一个调用的方法是以某种方式单独呈现部分,并将其缓存为javascript或如您所说的那样缓存到页面本身,然后打开/关闭它。
https://stackoverflow.com/questions/4248273
复制相似问题