【发布时间】:2011-07-15 09:54:52
【问题描述】:
我正在考虑实现类似以下的内容,并想知道 a) 是否由于某种我没有想到的原因可能是一个非常糟糕的主意,以及 b) 如果不是 - 是否有现有的 gem去做。
基本上,我希望能够将我的 rails 控制器中的 javascript 事件排队,以便在下一次渲染时触发所有排队的事件并将其从队列中删除。有点像 flash 机制,但用于事件。例如:
在我的控制器中:
def create
if resource.create
add_event('resourceCreated', :id => resource.id)
end
end
在我的应用程序布局中类似于:
%javascript
- @events.each do |e|
$(document).trigger(#{e.event_name}, #{e.event_data})
有什么想法吗?
编辑: 这会很有用,例如创建项目时,服务器可以重定向到该项目的编辑表单,或者可以重定向到相关控制器的索引操作。这些页面不知道刚刚创建了一个项目。但是,如果项目创建成功,也许我想做一些事情,比如关闭一个对话框窗口,但如果不是,则让它保持打开状态,或者我可能需要了解它的任何其他可能原因。显然不仅与创建相关,这只是我用来说明问题的示例
编辑:赏金给任何人以一种或另一种方式令人信服地说服我这是一个好/坏主意或提供更好的选择
【问题讨论】:
-
除了资源创建/更新/删除还有其他事件类型吗?如果不是,为什么标准的 Flash 消息不适合?
标签: javascript jquery ruby-on-rails events