6

要素の属性内でいくつかのハンドルバー ブロック ヘルパーを使用する必要があります。どうすれば入手することができますか

.some.class{:class => "{{if property}} otherClass {{/if}}"}

正しく解析するには?コンパイルされた出力は次のとおりです。

<div class='class otherClass property}} some {{/if}} {{if'></div>

単語以外のすべての文字をエスケープし、一重引用符を試し、間隔を調整しようとしましたが、何も修正されていないようです。:plain キーワードを使用するだけでなく、より洗練されたソリューションを見つけたいと思っています。

4

3 に答える 3

1

Haml がそれを受け入れるには、{{}} の前に文字を追加する必要があることがわかりました。例えば:

%div.some.class{:class => "a{{foo}}"}

アイデアではありませんが、私の目的に合っています。

于 2012-07-16T19:22:49.083 に答える
0

クラスの簡略ドット表記とクラス属性の両方を使用する代わりに、すべてのクラスをクラス属性に移動します。

.col-md-12.card{ class: "{{toLowerCase level_name}}-master-card" }

になる

%div{ class: "col-md-12 card {{toLowerCase level_name}}-master-card" }

ハムル 4.0.7

于 2016-06-29T08:30:32.410 に答える
0

実は、適度に複雑なハンドル表現には、このトリックは通用しません。

最後に、haml で文字列リテラルを使用してこれを解決しました。したがって、質問に示されている例では。以下の haml が必要です。最後の行であるタグを閉じることを忘れないでください。

\ <div class='class {{if property}} otherClass {{/if}} some '>
-# Normal haml goes here and must not start at the same indent as the above literal
\ </div>
于 2015-01-15T06:44:22.073 に答える