我想使用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结构?
答案 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'等)。