如何在页面重定向上显示jgrowl消息

时间:2011-12-09 10:45:07

标签: jquery ruby-on-rails-3 jgrowl

我已经设置了jgrowl,一切似乎都正常工作。我现在必须按一个按钮才能触发消息显示在屏幕的右上方,如下所示:

<input type="button" onclick="$.jGrowl('Your transaction has been processed', { life: 10000 });" href="javascript:void(0);" value="Default"/>

我想要的是当我在我的控制器中重定向时,jgrowl消息现在会自动弹出:

def ch_sum_total
    #....some processing stuff code....
    respond_to do |format|
        format.html { redirect_to(:back) }
        format.js {}
    end
end

我该怎么做?

2 个答案:

答案 0 :(得分:2)

我会在控制器上添加你想要成长的消息,以便你可以看看是否必须显示jGrowl。

这样的事情:

def ch_sum_total
    #....some processing stuff code....

    flash[:notice] = 'Your transaction has been processed'

    respond_to do |format|
        format.html { redirect_to(:back) }
        format.js {}
    end
end

并在:back页面上显示如下内容:

<script>
  $(function() {
    <% if flash[:notice] %>
      $.jGrowl('<%= escape_javascript(flash.discard(:notice)) %>', { life: 10000});
    <% end %>
  });
</script>

答案 1 :(得分:1)

通过传递$(...)函数来使用jQuery的document.ready处理程序。

$(function() {
  $.jGrowl('Your transaction has been processed', { life: 10000});
});

这将阻止您的代码执行,直到加载DOM并且可以正确显示jGrowl。