好的,所以我试图抓住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