link_to和remote => true jquery:怎么样?帮帮我?

前端之家收集整理的这篇文章主要介绍了link_to和remote => true jquery:怎么样?帮帮我?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在我的rails网站的索引上创建一个“用户链接,以便它显示注册用户(User.all),但是我想要将其显示在网站的正确部分,作为部分,在没有从一开始就加载整个页面

我知道这是可能的旧的原型和远程=>真正
但是使用Rails 3.1和jQuery(和资产)我不知道该怎么做。

任何人都可以帮助或告诉我教程的方式吗?

解决方法

这实际上很简单,因为它是新的,只是感觉很大。基本上,随着新的不引人注目的JavaScript支持,rails ujs脚本公开了一组可以绑定javascript函数的事件,它们是:

> ajax:beforeSend – 发送之前发送
> ajax:成功 – 发送后发送,包含响应
> ajax:成功事件结束后完成
> ajax:当出现错误时发生错误

所有你需要做的就是编写一个函数(你在$ document.ready中包装),这个函数反过来会将一些匿名函数绑定到这些事件中,或者只是你感兴趣的事件。

例如,假设您有一个div,您要将响应数据放入一个id为“response_data”,并且您的链接的ID为“ajax_trigger”。这样的事情

<%= link_to "My Link",some_model_path(@model_instance),:remote => true,:html => {:id => "ajax_trigger"} %>
<div id="response_data">
</div>

所有你需要做的是提供一个类似下面的功能,以便将服务器的响应放入div:

$(document).ready(
     function(){
          $("a#ajax_trigger").bind("ajax:success",function(evt,data,status,xhr){
                        //this assumes the action returns an HTML snippet
                        $("div#response_data").html(data);
           }).bind("ajax:error",xhr){
                    //do something with the error here
                    $("div#errors p").text(data);
           });
});

真的,您正在使用的所有JavaScript都是在从服务器返回时处理响应。您不需要特别处理启动XHR请求,您也可以将该方法安全地存储在作为静态资源的.js文件中。如果您使用的是Rails 3.1,则应将其放在与控制器对应的适当命名的javascript文件中。在控制器中,您需要确保指定:layout =>在respond_with()方法中为false,控制器只返回其呈现的部分或模板,而不是完整的页面。此设置还适用于返回JavaScript以由客户端执行的操作以及JSON,具体取决于您在请求中指定的数据类型。

我发现这个博客文章是非常有帮助的:
http://www.alfajango.com/blog/rails-3-remote-links-and-forms/

猜你在找的jQuery相关文章