私が正しく理解していれば、そのページを生成している HAML といくつかの tmpl ロジックを混在させようとしているように思えます。jQuery tmpl は、すべての HAML が解析されて HTML に変換された後に行われることに注意してください。
したがって、クライアント側の HTML として次のようなものが必要な場合:
<script id="myTmpl" type="text/x-tmpl">
{{if $error}}
<div class="error">
Error!!!
</div>
{{else}}
<div class="non-error">
Everything looks ${adjective} to me.
</div>
{{end if}}
</script>
次のように HAMl を使用できます (インデントはオフになります)。
%script#myTmpl{:type => "text/x-tmpl"}
:plain
{{if $error}}
.error Error!
:plain
{{else}}
.non-error Everything looks ${adjective} to me.
:plain
{{/if}}
解析可能な jQuery-tmpl を出力しようとしていることに注意してください。他のオプションは、HAML の:plain
タグですべてを行うことです。読みやすさのためにこれを好む人もいます。