Javascript 带有moustache.js的内容相关模板/部分

Javascript 带有moustache.js的内容相关模板/部分,javascript,templates,Javascript,Templates,我想使用来呈现以下JSON结构: [ {type:'img', src:'some_url'}, {type:'text', text:'lorem ipsum ...'}, {type:'link', href:'some_url', label:'click here'}, // more entries ... ] 我想根据类型呈现每个项目:img应该br呈现为,文本呈现为{{text}},等等。这是否可以通过moustach.js实现,或者我应该滚动我自己的模板系统?

我想使用来呈现以下JSON结构:

[
  {type:'img', src:'some_url'},
  {type:'text', text:'lorem ipsum ...'},
  {type:'link', href:'some_url', label:'click here'},
  //  more entries ...
]

我想根据类型呈现每个项目:img应该br呈现为
,文本呈现为
{{text}}

,等等。这是否可以通过moustach.js实现,或者我应该滚动我自己的模板系统?如果可能的话,模板会是什么样子?我必须如何扩展JSON结构,使其作为一个小胡子视图工作?

是的,这是绝对可能的

你可以这样做

{{#myarray}} {{! loop through array}}
{{#src}} {{! if you have src it must be an img}}
  <img src="{{src}}">
{{/src}}  
{{#text}} {{! if you have text is must be a paragraph}}
  <p>{{text}}{{/p}}
{{/text}}
{{#href}}} {{! if you have an href is must be an anchor}}
  <a href="{{href}}">{{label}}</a>
{{/href}}
{{/myarray}}
{{{#myarray}{{!循环数组}
{{{{src}}{!如果你有src,它一定是一个img}
{{/src}}
{{{{文本}}{!如果有文本,则必须是段落}}
{{text}}{{/p}
{{/text}
{{{{{!如果你有一个href,它必须是一个锚}}}
{{/href}}
{{/myarray}
只要字段对于特定类型的输出是唯一的,就没有理由扩展json。您只需检查字段是否存在,如果存在,则必须以某种方式输出

您可以做的另一件事是,不用“type”字段,而是将json设置为模板所基于的各种标志(例如“is_image:true”、“is_anchor:true”等)