Перебирать ключи / значения в Hogan.js - PullRequest
3 голосов
/ 26 марта 2012

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

Ответы [ 2 ]

4 голосов
/ 23 ноября 2012

В Hogan.js нет способа напрямую перебирать ключи и значения в объекте, поэтому sub_stantial выполняет перебор массива.

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

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

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

1 голос
/ 24 мая 2012

Вчера я был в такой же ситуации, и после некоторых исследований с 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/

...