2016-07-07 6 views
0

ハンドルバーのカスタムブロックヘルパーと条件付きヘルパーについて学ぶために、jsfiddleで簡単な例を作成しました。カスタムヘルパーはtrueを返しますが、条件式は、この例では、適切に起きていない何ブロックヘルパー条件付きヘルパーがハンドルバーで期待どおりに動作しない

<script id="test" type="text/x-handlebars-template"> 
<h3>{{title}}</h3> 
<p>custom helper returns: {{isCategory}}</p> 
<p>conditional result: {{#if isCategory}}yes{{else}}no{{/if}}</p> 
<p><em>I would expect the result to be 'yes'</em></p> 
</script> 

の外に渡された値に正しく応答していないよう?

答えて

1

お客様の条件{{#if isCategory}}は、データオブジェクト内にisCategoryを探しています。存在しないため、虚偽/いいえ。

条件付きブロックはカスタムヘルパーを評価しません。テンプレートに渡されたデータオブジェクトのみを調べます。

+0

これは意味があります。カスタムヘルパーはDOMに挿入されるコードを返します。私が試みていたような他の目的には使えません。ありがとう。 – Greg

+0

あなたができることの1つは、 '{{#if}} 'の代わりに使うことができる独自の条件付きブロックヘルパーを書くことです。これの例は私が今作業しているプロジェクトにあります。これは、初期ページの読み込み時にすべてのユーザーのアクセス許可を取得するSPAです。私は、ユーザーが必要な権限を持っているかどうかに基づいていくつかのことを隠したり表示したりしたいので、条件付きヘルパーを書いて、それがあるかどうかを確認します。 '{{#permission 'CREATE_USERS'}} {{/ permission}' –

+0

これは本質的に私が達成しようとしているものです。あなたの{{#permission}}の例では、ブロックヘルパーは、ユーザーの作成ボタンを表示または非表示にするブール値を返すか、ボタンhtmlを返すかどうかを指定しますか? – Greg

関連する問題