問題は、間違ったタイプのUnderscore.jsテンプレートタグを使用していることです。使用しているタグは、値を補間してHTMLエスケープするためのものです。
説明すると、アンダースコアテンプレートには3種類のタグがあります。
<%= %>
-補間-プロパティのデータを評価して出力します。
<%- %>
エスケープデータを評価し、HTMLエスケープして印刷します。
<% %>
評価テンプレートでJavaScriptを実行できます。
さらに、テンプレート内でJavaScriptを実行する場合、Print
メソッドを使用してテキスト(属性の結果など)を出力できます。
上記に基づいて、テンプレート内で条件を実行して、doneがtrueと評価されたかどうかをチェックして印刷する必要があります。したがって、あなたができることは次のようなものです
<% if(done) { %> 'checked="checked" <% } %>
print
または、この方法を使用できます
<% print(done ? 'checked="checked"' : '') %>
編集:
投稿したテンプレートに基づいて、次のテンプレートが機能するはずです
<script id="item-template" type="text/template">
<input type="checkbox" id="toggle" <% print( done ? 'checked="checked"' : '') %> />
<span class="text">{{-done}}</span>
<a id="dele" data-role="button" data-inline="true" data-icon='delete' >Delete</a>
</script>
これは、デフォルトのERBスタイルの区切り文字を使用したjsBinへのリンクです。
そして、これが口ひげスタイルの区切り文字を使用した2番目のものです。