私はMustache.jsのグリップを取得して、JavaScriptのビューをレンダリングしようとしています。私はいくつかの異なるタイプであることができるいくつかの "イベント"を返すAPIを持っています。 、私はこのような何か行うことができます理想的Mustacheのハッシュ値に基づいてテンプレートの部分を切り替えることはできますか?
data : {
events: [ {title: 'hello', type: 'message'}, {title: 'world', type: 'image'} ] }
:私はそのタイプに基づいて、(非常に)さまざまな方法でイベントレンダリングする
{{#events}}
{{#message}}
<div class="message">{{title}}</div>
{{/message}}
{{#image}}
<span>{{title}}</span>
{{/image}}
{{/events}}
をしかし、それは(右?)私を強制します私のデータをリファクタリングする:
data : {
events: [ {message: {title: 'hello'}}, {image: {title: 'world'}} ] }
私のデータをリファクタリングせずにこれを解決するより良い方法がありますか?または、私は弾丸を噛むべきですか?
私はあなたの答えを受け入れましたが、ここに入力してもらえますか?私はシンプルなシステムを探していますが、現時点ではどちらの方法も自由に使えます - APIはまだ構築されており、実際のGUIパーツはまだ構築されていません。あなたはMustache上のハンドルバーと一緒に行くことをお勧めしますか?または別の図書館をまとめて? –
この特定の例では、 'event_renderer'ヘルパーを' Handlebars.registerHelper'でグローバルに登録し、新しいデータをレンダリングするたびにこの関数を混在させないようにすることができます。手短に言えば、ハンドルバーには、メンバーの1つの値に基づいて部分レンダリングまたは部分的レンダリングに使用できる構文がありません。真実と偽の値のみをテストできます。 – gonchuki