Mein Objekt sieht so aus:
['foo','bar','baz']
Und ich möchte eine Schnurrbartvorlage verwenden, um daraus etwa Folgendes zu erstellen:
"<ul><li>foo</li><li>bar</li><li>baz</li></ul>"
Aber wie? Muss ich es wirklich zuerst in so etwas eintauchen?
{list:['foo','bar','baz']}
javascript
mustache
greim
quelle
quelle
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
{{.}}
,{{1}}
oder etwas ähnliches in Schnurrbart (5).Ich hatte heute Morgen das gleiche Problem und nach ein wenig Experimentieren stellte ich fest, dass Sie mit {{.}} Auf das aktuelle Element eines Arrays verweisen können:
quelle
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
Mustache.render('<ul>{{#.}}{{.}}{{/.}}</ul>', {yourList: ['foo','bar','baz']});
Aufbauend auf der Antwort von @ danjordan wird dies tun, was Sie wollen:
Rückkehr:
quelle
{a:'foo',b:'bar',c:'baz'}
... Wie werden anonyme Referenzen beim Iterieren über Objekte erstellt?Im Folgenden finden Sie Beispiele zum Rendern eines mehrdimensionalen Arrays in einer Vorlage:
Beispiel 1
Beispiel 2
Speichern Sie für den Testlauf die obigen Beispiele in der Datei 'test.js' und führen Sie den folgenden Befehl in der Befehlszeile aus
quelle
Ich glaube nicht, dass Schnurrbart das kann! (überraschend) Sie können eine Liste von Objekten durchlaufen und dann auf die Attribute jedes Objekts zugreifen, aber Sie können scheinbar nicht über eine einfache Liste von Werten iterieren!
Sie müssen Ihre Liste also in Folgendes umwandeln:
und dann wäre Ihre Vorlage:
Für mich scheint dies ein ernstes Problem mit Moustache zu sein - jedes Vorlagensystem sollte in der Lage sein, eine Liste einfacher Werte zu durchlaufen!
quelle