Как отображать сообщения 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 ответа
Решение
Я бы добавил сообщение, которое вы хотите 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>
Используйте jQuery's document.ready
обработчик мимоходом $(...)
функция.
$(function() {
$.jGrowl('Your transaction has been processed', { life: 10000});
});
Это предотвратит выполнение вашего кода до загрузки DOM и правильного отображения jGrowl.