javascript uso I baffi possono iterare un array di primo livello?




uso array javascript (4)

Non credo che i baffi possano farlo! (Sorprendentemente) È possibile eseguire iterazioni su un elenco di oggetti e quindi accedere agli attributi di ciascun oggetto, ma non sembra che iterare su un semplice elenco di valori!

Quindi, devi trasformare la tua lista in:

[ {"value":"foo"},{"value":"bar"},{"value":"baz"} ] 

e quindi il tuo modello sarebbe:

<ul>
  {{#the_list}}
  <li>{{value}}</li>
  {{/the_list}}
</ul>

Per me, questo sembra un grave problema con Mustache - qualsiasi sistema di template dovrebbe essere in grado di scorrere su un elenco di valori semplici!

Il mio oggetto ha questo aspetto:

['foo','bar','baz']

E voglio usare un modello di baffi per produrre qualcosa di simile a questo:

"<ul><li>foo</li><li>bar</li><li>baz</li></ul>"

Ma come? Devo davvero immergerlo in qualcosa come questo prima?

{list:['foo','bar','baz']}

Basandosi sulla risposta di @ danjordan, questo farà ciò che vuoi:

Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);

ritorno:

<ul><li>foo</li><li>bar</li><li>baz</li></ul>

Puoi farlo in questo modo ...

Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>', ['foo','bar','baz']);

Funziona anche per cose come questa ...

var obj = [{name: 'foo'}, {name: 'bar'}];
var tmp = '<ul>{{#.}}<li>{{name}}</li>{{/.}}</ul>';
Mustache.render(tmp, obj);

Ho avuto lo stesso problema stamattina e dopo una piccola sperimentazione ho scoperto che puoi usare il {{.}} Per fare riferimento all'elemento corrente di un array:

<ul>
  {{#yourList}}
  <li>{{.}}</li>
  {{/yourList}}
</ul>




mustache