Mój obiekt wygląda tak:
['foo','bar','baz']
I chcę użyć szablonu wąsów, aby stworzyć z niego coś takiego:
"<ul><li>foo</li><li>bar</li><li>baz</li></ul>"
Ale jak? Czy naprawdę muszę najpierw wmieszać go w coś takiego?
{list:['foo','bar','baz']}
javascript
mustache
Greim
źródło
źródło
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
{{.}}
,{{1}}
ani niczego podobnego w wąsach (5).Miałem ten sam problem dziś rano i po krótkich eksperymentach odkryłem, że możesz użyć {{.}}, Aby odnieść się do bieżącego elementu tablicy:
źródło
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
Mustache.render('<ul>{{#.}}{{.}}{{/.}}</ul>', {yourList: ['foo','bar','baz']});
Opierając się na odpowiedzi @ danjordan, zrobisz to, co chcesz:
powracający:
źródło
{a:'foo',b:'bar',c:'baz'}
... Jak wykonywać anonimowe odwołania podczas iteracji po obiektach?Poniżej znajdują się przykłady renderowania wielowymiarowej tablicy w szablonie:
Przykład 1
Przykład 2
W przypadku uruchomienia testowego zapisz powyższe przykłady w pliku o nazwie „test.js”, uruchom następujące polecenie w wierszu poleceń
źródło
Nie sądzę, że wąsy mogą to zrobić! (zaskakujące) Możesz iterować listę obiektów, a następnie uzyskać dostęp do atrybutów każdego obiektu, ale nie możesz iterować po prostej liście wartości!
Musisz więc przekształcić swoją listę w:
a wtedy twój szablon będzie wyglądał następująco:
Wydaje mi się, że to poważny problem z Mustache - każdy system szablonów powinien być w stanie zapętlić listę prostych wartości!
źródło