有没有办法使用Hogan.js迭代对象中的键和值?我无法找到这样的文档功能 - 只有对数组进行迭代才能记录下来。是否可以遍历hogan.js(或任何其他moustache.js实现)中的对象?
答案 0 :(得分:4)
没有办法直接迭代Hogan.js中对象中的键和值,sub_stantial正在做的是基本上迭代数组。
根据您的要求,您需要一些预渲染代码。假设你有一个{ 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] });
})
实现这一诀窍的Mustache模板是
{{#oAsList}} {{key}} has value {{value}}; {{/oAsList}}
答案 1 :(得分: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/