[英]Refreshing a div with the contents of flash[:notice] using right.js?
我在我的sinatra应用程序中使用内联haml模板。 我有一个@@layout
其中包含以下部分:
#message
- if flash[:notice]
%section.notice= flash[:notice]
- if flash[:error]
%section.error= flash[:error]
当我使用flash[:notice]
=“你好!” 在路线中点击一个链接,下一页愉快地在#message
div中说“你好”。很棒。
所以这就是问题所在,我正在使用right.js为我的应用程序添加一些ajax的好处,机架式闪存的行为充其量是不一致的。
大多数情况下,你单击一个链接( .linkey
),一点点javascript拦截它并加载到#content
div(这部分也可以),然后重新加载'#message'div和闪存显示上一个操作...下次单击链接时...大约80%的时间,其余时间不显示任何内容。
这是我的js:
"a.linkey".onClick(function(event) {
event.stop();
$('content').load( [ "/", this.get('id'), ].join("") );
$('message').load( '/message' );
});
我希望是这样的:
1)点击链接
2)链接目标(/ foo)被加载到#content
3) #message
重新加载消息(来自路由flash[:notice]
=“bar”)
4) #content
现在显示/foo
& #message
显示“bar”
我也尝试过$('message').load( '/message' );
但是要么没有加载到#message
,要么用“/ message”填充#message
(字符串不是内容)。
我想知道这里发生了什么? 是机架式闪存还是right.js? 或者是其他东西? 如果需要的话,我可以提供更多的代码,但除了基本框架之外,我刚刚开始这个项目。
对于通过控制器操作运行的AJAX请求,您需要使用flash.now
以便闪存消息可用于当前请求。 所以在你的情况下, flash.now[:notice] = "bar"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.