Mi objeto se ve así:
['foo','bar','baz']
Y quiero usar una plantilla de bigote para producir algo como esto:
"<ul><li>foo</li><li>bar</li><li>baz</li></ul>"
¿Pero cómo? ¿De verdad tengo que convertirlo en algo como esto primero?
{list:['foo','bar','baz']}
javascript
mustache
greim
fuente
fuente
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
{{.}}
,{{1}}
ni nada parecido en bigote (5).Tuve el mismo problema esta mañana y después de un poco de experimentación descubrí que puedes usar {{.}} Para referirte al elemento actual de una matriz:
fuente
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
Mustache.render('<ul>{{#.}}{{.}}{{/.}}</ul>', {yourList: ['foo','bar','baz']});
Sobre la base de la respuesta de @ danjordan, esto hará lo que quieras:
regresando:
fuente
{a:'foo',b:'bar',c:'baz'}
... ¿Cómo hacer referencias anónimas cuando se itera sobre objetos?A continuación se muestran los ejemplos para renderizar una matriz multidimensional en una plantilla:
Ejemplo 1
Ejemplo 2
Para la ejecución de prueba, guarde los ejemplos anteriores en el archivo llamado 'test.js', ejecute el siguiente comando en la línea de comandos
fuente
¡No creo que el bigote pueda hacer esto! (sorprendentemente) Puede iterar sobre una lista de objetos y luego acceder a los atributos de cada objeto, ¡pero parece que no puede iterar sobre una lista simple de valores!
Entonces, debes transformar tu lista en:
y luego tu plantilla sería:
Para mí, esto parece un problema grave con Moustache: ¡cualquier sistema de plantilla debería poder recorrer una lista de valores simples!
fuente