好的,所以我試圖抓住Mustache.js來呈現javascript中的視圖。我有一個API返回一些「事件」,可以是許多不同的類型。我想渲染(非常)不同的方式,根據其類型的事件:是否可以根據鬍鬚中的哈希值切換模板部分?
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部件。你會推薦帶鬍子的鬍子嗎?或者另一個圖書館在一起? – 2012-02-06 18:52:47
對於這個特定的例子,區別在於你可以在''hand_list.registerHelper''中全局註冊你的'event_renderer'助手,並且避免每次你有一些新的數據要渲染時混入這個函數。簡而言之,Handlebars上沒有語法可用於根據其中一個成員的值渲染一個或另一個部分,但只能測試真實值和虛假值。 – gonchuki 2012-02-06 19:10:06