【发布时间】:2016-01-26 02:02:41
【问题描述】:
我在我的主页上使用了自定义注册模式(带有设计),我使用 flash 来存储错误并将它们显示在自定义注册模式上。我想知道的是我是否可以使用javascript检查flash中是否有任何消息,如果是,我可以在重定向到主页时自动打开模式。因此,基本上我需要可以执行以下操作的 javascript:
Are there messages stored using flash?
If so, open modal when homepage loads.
当主页使用js加载时,我已经可以打开模式,但是我不知道如何检查flash中是否有消息。是否可以访问flash并检查是否有使用js存储的错误?谢谢!
编辑:
所以我对 AJAX 完全陌生,但我遵循了这个:http://ashleyangell.com/2010/10/handling-rails-flash-message-with-ajax-requests/
我在我的应用程序控制器中添加了以下内容:
after_filter :flash_headers
def flash_headers
return unless request.xhr?
response.headers['x-flash'] = flash[:error] unless flash[:error].blank?
response.headers['x-flash'] = flash[:notice] unless flash[:notice].blank?
response.headers['x-flash'] = flash[:warning] unless flash[:warning].blank?
# Stops the flash appearing when you next refresh the page
flash.discard
end
我有以下 javascript:
$(document).load(function(){
$.ajax({
var flash = response.getHeader('x-flash');
if (flash) alert(flash);
});
});
现在我在下面的行中遇到“意外标识符”问题,并且当存在快速通知时不会显示警报。
var flash = response.getHeader('x-flash');
任何帮助将不胜感激
【问题讨论】:
-
为此发出 ajax 请求。基于响应的打开模态
-
那会是什么样子?
-
google 搜索不难。查找教程宝石等不会有任何问题
-
为什么使用 ajax 而不是普通的 javascript?我仍然无法弄清楚您如何将 flash 视为 js/ajax 变量...
-
javscript 在浏览器中运行,您的闪存在服务器上。 ajax 是通过 javascript 向服务器发出请求和服务器响应数据来完成的
标签: javascript jquery ruby-on-rails devise