2012-03-25 6 views
3

Gibt es eine Möglichkeit, Schlüssel und Werte in einem Objekt mit Hogan.js zu durchlaufen? Ich kann eine solche dokumentierte Funktionalität nicht finden - nur die Iteration über Arrays scheint dokumentiert zu sein. Ist es sogar möglich, Objekte in hogan.js (oder einer anderen moustache.js-Implementierung) zu durchlaufen?Iterate durch Schlüssel/Werte in Hogan.js

Antwort

1

war ich in der gleichen Situation gestern, und nach einigen Recherchen mit Hogan.js und Mustache.js, fand ich diese Lösung:

var data = { 'list' : [{ 'name' : 'dhg'}, {'name' : 'abc'}] }; 
var template = Hogan.compile("{{#list}} {{name}} {{/list}}"); 
var output = template.render(data); 
console.log(output); 

Sie es hier in Aktion sehen: http://jsfiddle.net/LuD6j/1/

4

Es gibt keine Möglichkeit, Um direkt über die Schlüssel und Werte in einem Objekt in Hogan.js zu iterieren, macht sub_stantial im Wesentlichen eine Iteration über ein Array.

Je nachdem, was Sie tun möchten, benötigen Sie ein bisschen Prerender-Code. Angenommen, Sie haben ein Objekt, das ist { k1: "v1", k2: "v2" }. Und Sie wollen Ihre gerenderte Vorlage k1 has value v1; k2 has value v2; zu sein, müssen Sie nur diese benötigen (_ ist die underscore Bibliothek):

var oAsList = []; 
_.each(_.keys(oAsList), function (k) { 
    oAsList.push({ key: k, value: o[k] }); 
}) 

und das Schnurrbart-Vorlage, die der Trick ist
{{#oAsList}} {{key}} has value {{value}}; {{/oAsList}}