2013-04-05 103 views
0

我有两个控制器,分别命名为client/ordersnotary/orders。在“客户端/订单”中有click_me链接。当我点击链接时,我应该将一个阿贾克斯请求传递给notary/orders/pending_ordersreload the notary/orders/pending_orders页面。format.js无法在rails 2中工作

这是我的AJAX调用客户端/命令/新

<script> 
    jQuery.noConflict(); 
jQuery(document).ready(function(){ 
alert(9); 
jQuery(".test_link").live("click", function(){ 
    alert("am clicked"); 
     jQuery.ajax({ 
     url: "/notary/orders/pending_orders", 
     dataType: 'script', 
     type: "get", 
     data: {data:'hi'}, 
     success:function(){ 
      alert("success"); 
     }, 
     error:function(){ 
      alert("failure"); 
     } 
    }); 
}) 

});

<%= link_to "click me", "javascript:void(0);" , :class => "test_link" %> 

这是我在notary/orders/pending_orders

if request.xhr? 
    respond_to do |format| 
    format.js { render :js=>'location.reload();', 
    :location => "notary/orders/pending_orders"} 
    end 
    end 

但其重载client/orders/newnotary/orders/pending_orders。但我想重装 公证/单码/ pending_orders.How我可以做到这一点?

回答

1

我想链接<%= link_to "click me", "javascript:void(0);" , :class => "test_link" %> 是在client/orders/new,并且你想更新页notary/orders/pending_orders页。

由于您是从client/orders/new作出要求,所有的回复将只在client/orders/new更新。

看来您正在从一个浏览器执行client/orders/new的操作,并在另一个浏览器中侦听页面notary/orders/pending_orders以在后端发生某些更改时更新通知。

要更新页面(例如:显示notary/orders/pending_orders通知)时自动改变在后端发生的事情,我用做的是,我将提出一个独立的监听器这样的事情,

<script type="text/javascript"> 
     jQuery(document).ready(function(){ 
     notificationListener(); 
     }); 

     function notificationListener(){ 
     jQuery.ajax({ 
      url: "/notary/orders/pending_orders", 
      type: "get", 
      data: {data:'yourdata'}, 
      success:function(){ 
      if(expected result){ 
       //code to update browser view 
      } 
      else{ 
       setTimeout(notificationListener(),10000) 
      } 
      }, 
      error:function(){ 
       // 
      } 
     }); 
    } 

</script> 
+0

您的回答给了我更多的想法。谢谢回复 – Inaccessible 2013-06-07 05:38:43