Как отображать сообщения jgrowl на странице перенаправления - PullRequest
1 голос
/ 09 декабря 2011

У меня есть настройка 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 ]

2 голосов
/ 09 декабря 2011

Я бы добавил сообщение, которое вы хотите Growl, в ваше действие на контроллере, чтобы вы могли увидеть, нужно ли показывать 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 голос
/ 09 декабря 2011

Используйте обработчик jQuery document.ready, передав $(...) функцию.

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

Это предотвратит выполнение вашего кода до загрузки DOM и правильного отображения jGrowl.

...