2016-01-20 15 views
5

Ho un file chiamato "list.json", istituito in questo modo:Passa attraverso l'oggetto nei nunjucks?

{ 
    "thing1": "Thing1", 
    "thing2": "Thing2", 
    "thing3": "Thing3" 
} 

Come posso ciclo attraverso questo? Voglio fare qualcosa di simile:

{% for item in list%} 
    <option>{{ thing }}</option> 
{% endfor %} 

risposta

2

Si può provare a seguito

{% for key, item in list%} 
    <option>{{ item }}</option> 
{% endfor %} 
+0

Non funziona purtroppo. –

+0

Che cosa esattamente non funziona? – nikhil

+0

Non sta effettuando alcun ciclo. Non si presenta nulla Errore silenzioso. –

1

Avete importato il JSON? In caso contrario, nel render JS, aggiungere una variabile:

list: JSON.parse(fs.readFileSync('list.json')) 

Se lo si utilizza più volte, aggiungere una variabile nella parte superiore del file, invece.

var LIST = JSON.parse(fs.readFileSync('list.json')) 

E 'anche possibile utilizzare il metodo asincrono, ma è necessario un po' di nidificazione:

fs.readFile('list.json', function(err, list) { 
    env.render('template.html', { 
     list: list, 
     //other data 
    } 
} 
0

Si dovrebbe prima creare un array di oggetti in back-end:

var things = []; 

things.push({id : 'thing1', name : 'Thing1'}); 
things.push({id : 'thing2', name : 'Thing2'}); 
things.push({id : 'thing3', name : 'Thing3'}); 

Now on front end saresti in grado di scorrere attraverso questo array come di seguito:

{% for thing in things %} 
<option value="{{ thing.id }}"> {{ thing.name }}</option> 
{% endfor %} 

Spero che questo ti possa aiutare.

Problemi correlati