2013-08-20 7 views
5

属性:ハンドルバー - 動的な要素が、私はこのような何かやりたい

{{#each user}} 
    <span class="{{user.female ? 'female-span' : 'male-span'}}">{{name}}</span> 
{{/each}} 

これはangularjsのようなもので簡単になんとかですが、私は、このハンドルを行うことはできませんが。要素の属性を動的に変更したいとき、ハンドルバーに従うイディオム/パターンは何ですか?これを行うハンドルバープラグインはありますか?

答えて

8

ハンドルバーは{{#if}}ヘルパー(ここでは使用できますが、それはちょうど冗長です)を与えました。ロジックが少ないため、角括弧の中で渡されるコードは評価されません(アンダースコアテンプレートではこれを行います)。

これは、テンプレートに副作用がないことを確認するのに適しています。

ここでは、テンプレートからこのロジックを削除し、テンプレート引数としてクラス名を渡すために、おそらくたいでしょう:

template({ genderClass: user.female ? 'female-span' : 'male-span' }); 

次に、テンプレートに:あなたのケースでは

<span class="{{genderClass}}">{{name}}</span> 

あなたは配列になっているので、genderClassをモデルプロパティとして追加することができます。それ以外の場合は、カスタムヘルパーメソッドを使用することもできますが、それは非常に簡単なもののオーバーヘッドです。

関連する問題