与moustache.js相关的依赖于内容的模板/部分

时间:2010-07-16 10:03:17

标签: javascript templates

我想使用moustache.js呈现以下JSON结构:

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

我想根据类型呈现每个项目:img应该呈现为<img src="{{src}}">,文本呈现为<p>{{text}}</p>等等。这是可能的moustache.js还是我应该自己模板化系统?如果可能,模板将如何显示,我如何扩展它作为胡须视图工作的JSON结构?

1 个答案:

答案 0 :(得分:3)

是的,这绝对是可能的。

您可以执行类似

的操作
{{#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}}

根本没有理由扩展json,只要这些字段对于某种类型的输出是唯一的。您可以检查该字段是否存在,如果存在,则必须以某种方式输出。

你可以做的另一件事而不是拥有一个'type'字段,json设置了各种标志,以使你成为模板(例如'is_image:true','is_anchor:true'等)。