次のハンドルバー テンプレートを作成しました
<script type="text/template" id="status">
{{#completed status}}
<button class="btn btn-inverse">Close</button>
<button class="btn btn-primary">Submit</button>
<button class="btn btn-danger">Delete</button>
{{else}}
<button class="btn btn-primary">Close</button>
{{/completed}}
</script>
これが私のハンドルバー登録ヘルパーです
Handlebars.registerHelper('completed',function(item,options){
if (item == 'INITIATED'){
console.log(options.fn())
return options.fn();
}
else{
console.log(options.inverse());
return options.inverse();
}
});
そして私のjavascript
obj={status: 'INITIATED'} and obj={status:'RECEIVED'}
Handlebars.compile( $('#status').html() )(obj).appendTo('body')
テンプレート内のstatus
変数は、値INITIATED
またはRECEIVED/COMPLETED
コンソールで印刷すると、例外のボタン (1 回、3 つのボタン、次回は 1 つのボタン) が表示されますが、html ファイルではelse section
唯一の (両方の場合) が表示されます。
どこで間違ったのかわかりません。ご意見をお聞かせください。