我在 HAML 视图中有一个 if 语句,用于检查是否有flash[:notice]
, if 是我希望弹出一个带有通知消息的 javascript 警报框。这可能吗?
问问题
3232 次
2 回答
1
为什么要把这个放在你的视野里?您可以在您的application.js
(或您的管道中任何其他包含的 JS 文件)中使用 Javascript 来完成此操作。您确实应该避免将 Javascript 直接放入您的视图中(这通常是不好的做法)。以下 HAML
#flash= flash[:notice]
会产生 HTML 之类的
<div id="flash">Your notice message here</div>
在你的application.js
你可以做这样的事情
$(function() {
if ($('#flash').get(0)) { // check if the div exists
alert($('#flash').text()); // throw an alert() with the div's text
}
});
也许这可以很好地满足您的目的,但是如果您根本不希望 Flash 消息文本出现在 HTML 中(即,将 Flash 消息分配给附加<head>
到<script>
标签。)
于 2013-02-24T21:06:26.133 回答
0
这有点笨拙,但您可以#{}
在 HAML 中的 javascript 过滤器内部使用,如下所示:
- unless flash[:notice].empty?
:javascript
alert("#{flash[:notice]}");
于 2013-02-24T21:07:45.263 回答