Meu objeto se parece com este:
['foo','bar','baz']
E eu quero usar um modelo de bigode para produzir algo assim:
"<ul><li>foo</li><li>bar</li><li>baz</li></ul>"
Mas como? Eu realmente tenho que mergulhar em algo assim primeiro?
{list:['foo','bar','baz']}
javascript
mustache
Greim
fonte
fonte
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
{{.}}
,{{1}}
ou algo semelhante no bigode (5).Tive o mesmo problema esta manhã e, após um pouco de experimentação, descobri que você pode usar o {{.}} Para se referir ao elemento atual de uma matriz:
fonte
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
Mustache.render('<ul>{{#.}}{{.}}{{/.}}</ul>', {yourList: ['foo','bar','baz']});
Com base na resposta de @danjordan, isso fará o que você quiser:
retornando:
fonte
{a:'foo',b:'bar',c:'baz'}
... Como fazer referências anônimas ao iterar sobre objetos?A seguir estão os exemplos para renderizar uma matriz multidimensional em um modelo:
Exemplo 1
Exemplo 2
Para executar o teste, salve os exemplos acima no arquivo chamado 'test.js', execute o seguinte comando na linha de comando
fonte
Não acho que bigode possa fazer isso! (surpreendentemente) Você pode iterar em uma lista de objetos e, em seguida, acessar os atributos de cada objeto, mas parece que você não consegue iterar em uma lista simples de valores!
Então, você deve transformar sua lista em:
e então seu modelo seria:
Para mim, isso parece um problema grave com o Mustache - qualquer sistema de modelo deve ser capaz de fazer um loop sobre uma lista de valores simples!
fonte