3

HAMLを使用してBackbone.jsアプリのテンプレートを生成しています。<%= blah %>html属性としてalaを挿入できるようにする必要があります。

%a{:href => "myresources/<% id %>"} My Resource

そしてそれを出力させる

<a href='myresources/<%= id %>' >My Resource</a>

htmlテンプレートで。残念ながら、HAMLはhtmlパラメータをエスケープして私を残します

<a href='#myresources/&lt;%= id %&gt;'>My Resource</a>

HAMLリファレンスによると「!」演算子は文字列のエスケープを解除するために使用できますが、HTML属性内では使用できません。

また、プレーンテキストを使用してアンカータグをレンダリングしますが、アンカータグはこの特定のビューのルートであるため、HAMLを使用する利点をすべて失います。

何か助けはありますか?

更新 については触れませんでしたが、LiveReloadを使用して実際にファイルシステムを監視し、hamlコンパイラを実行しています。また、LiveReloadには、タグ属性のHTMLエスケープを無効にする設定がありました。<ヘッドスラップ>LiveReload以外でこの問題が発生した場合は:escape_attrs、HAMLセットアップを構成するときにオプションをfalseに設定することもできます。

4

2 に答える 2

3

HAML構成のオプションを使用して、タグ属性をエスケープしないようにHAMLをescape_attrs構成できます。HAMLオプションを参照してください。

于 2012-05-02T04:33:52.393 に答える
0

String オブジェクトのメソッドである html_safe を使用してみることができます。これにより、変数ステートメント内の html 文字 (< など) がエスケープされ、アンダースコアが実行時に評価されるようにそのまま残ります。

%a{:href => "myresources/<% id %>".html_safe} My Resource

Underscore.js を使用して html 属性内を補間する への回答で見つかりました

于 2014-04-17T11:12:14.933 に答える