2012-03-25 1 views
3

Есть ли способ перебора ключей и значений в объекте с использованием Hogan.js? Я не могу найти такую ​​документально подтвержденную функциональность - только итерация по массивам, по-видимому, задокументирована. Возможно ли даже итерация через объекты в hogan.js (или любой другой реализации moustache.js)?Итерации через ключи/значения в Hogan.js

ответ

1

я был в такой же ситуации вчера, и после некоторых исследований с Hogan.js и Mustache.js, я нашел это решение:

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

Вы можете увидеть его в действии здесь: http://jsfiddle.net/LuD6j/1/

4

Там нет никакого способа для прямого перебора ключей и значений в объекте в Hogan.js то, что делает sub_stantial, очень важно итерации по массиву.

В зависимости от того, что вы хотите сделать, вам нужен код prerender. Предположим, что у вас есть объект o { k1: "v1", k2: "v2" }. И вы хотите, чтобы ваш шаблон визуализации быть k1 has value v1; k2 has value v2;, вам нужно только это (_ это underscore библиотека):

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

И шаблон Усы, что делает трюк является
{{#oAsList}} {{key}} has value {{value}}; {{/oAsList}}