2010-07-16 5 views
2

Je voudrais utiliser moustache.js pour rendre la structure JSON suivante:modèles dépendant du contenu/moustache.js avec partials

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

J'aimerais rendre chaque élément en fonction du type: img evrait rendu comme <img src="{{src}}">, le texte comme <p>{{text}}</p>, etc. Est-ce possible avec moustache.js ou devrais-je rouler mon propre système de modèle? Si c'est possible, à quoi ressemblerait le modèle et comment dois-je étendre la structure JSON qui fonctionne comme une vue de moustache?

Répondre

3

Oui, c'est absolument possible.

Vous pouvez faire quelque chose comme

{{#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}} 

Aucune raison d'étendre le JSON du tout, tant que les champs sont uniques à un certain type de sortie. Vous pouvez simplement vérifier si le champ existe, et si c'est le cas, il doit être sorti d'une certaine manière. L'autre chose que vous pouvez faire au lieu d'avoir un champ 'type' est d'avoir le jeu json avec différents drapeaux pour vous baser sur le template (par exemple 'is_image: true', 'is_anchor: true', etc.).

Questions connexes