首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >format.js在rails 2中不起作用

format.js在rails 2中不起作用
EN

Stack Overflow用户
提问于 2013-04-05 16:25:22
回答 1查看 131关注 0票数 0

我有两个名为client/ordersnotary/orders的控制器。有click_me链接在“客户/订单”.When我点击链接,我应该传递ajax请求到notary/orders/pending_ordersreload the notary/orders/pending_orders页面。

这是我在client/order/new中的Ajax调用

代码语言:javascript
复制
<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");   
      }
    });
})

});

代码语言:javascript
复制
<%= link_to "click me", "javascript:void(0);" , :class => "test_link" %>

这是我用notary/orders/pending_orders编写的代码

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

我想重新加载公证人/ client/orders/new /notary/orders/pending_orders_.But,我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-07 12:56:24

我猜链接<%= link_to "click me", "javascript:void(0);" , :class => "test_link" %>client/orders/new中,您想要从client/orders/new更新页面notary/orders/pending_orders

由于您是从client/orders/new发出请求,因此您的所有响应都将仅在client/orders/new中获得更新。

您似乎是在一个浏览器的client/orders/new中执行操作,并在另一个浏览器中监听页面notary/orders/pending_orders,以便在后端发生某些更改时更新通知。

为了在后端发生变化时自动更新页面(例如:在notary/orders/pending_orders中显示通知),我用来做的是,我将为此放置一个单独的侦听器,

代码语言:javascript
复制
    <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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15829170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档