0

HAML ビュー内に があるかどうかをチェックする if ステートメントがありflash[:notice]ます。これは可能ですか?

4

2 に答える 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
  }
});

これは目的にかなうかもしれませんが、フラッシュメッセージのテキストをHTMLにまったく表示したくない場合は、これを行うためのより良い方法があります(つまり、フラッシュメッセージをに追加されたJavascript変数に割り当てる<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 に答える