Mustacheのハッシュ値に基づいてテンプレートの部分を切り替えることは可能ですか?

私はMustache.jsのグリップを取得して、JavaScriptのビューをレンダリングしようとしています。私はいくつかの異なるタイプであることができるいくつかの "イベント"を返すAPIを持っています。私は、その型に基づいて(非常に)異なる方法でイベントをレンダリングしたいと思います:

data : { 
  events: [ {title: 'hello', type: 'message'}, {title: 'world', type: 'image'} ] }

理想的には、私は次のようなことをすることができます:

{{#events}}
    {{#message}}
         <div class="message">{{title}}</div>
    {{/message}}
    {{#image}}
         {{title}}
    {{/image}}
{{/events}}

しかし、それは(右?)私のデータをリファクタリングするよう強制します:

data : { 
  events: [ {message: {title: 'hello'}}, {image: {title: 'world'}} ] }

データをリファクタリングせずにこれを解決するより良い方法はありますか?または、私は弾丸を噛むべきですか?

4

1 答え

この特定の例では、 event_renderer ヘルパーを Handlebars.registerHelper でグローバルに登録し、新しい機能を追加するたびにこの機能を混在させることを避けることができますレンダリングするデータ。手短に言えば、ハンドルバーには、メンバーの1つの値に基づいて部分レンダリングまたは部分的レンダリングに使用できる構文がありません。真実と偽の値のみをテストできます。
追加された 著者 gonchuki,
私はあなたの答えを受け入れましたが、私にここで何か入力してもらえますか?私はシンプルなシステムを探していますが、現時点ではどちらの方法も自由に使えます - APIはまだ構築されており、実際のGUIパーツはまだ構築されていません。あなたはMustache上のハンドルバーと一緒に行くことをお勧めしますか?または別の図書館をまとめて?
追加された 著者 Arvid Janson,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript