【发布时间】:2012-03-25 22:31:17
【问题描述】:
有没有办法使用 Hogan.js 遍历对象中的键和值?我无法找到这种记录在案的功能 - 似乎只记录了对数组的迭代。是否可以遍历 hogan.js(或任何其他 moustache.js 实现)中的对象?
【问题讨论】:
标签: javascript templating hogan.js
有没有办法使用 Hogan.js 遍历对象中的键和值?我无法找到这种记录在案的功能 - 似乎只记录了对数组的迭代。是否可以遍历 hogan.js(或任何其他 moustache.js 实现)中的对象?
【问题讨论】:
标签: javascript templating hogan.js
在 Hogan.js 中无法直接迭代对象中的键和值,sub_stantial 所做的基本上是迭代数组。
根据您想要做什么,您需要一些预渲染代码。假设您有一个对象 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] });
})
做到这一点的 Mustache 模板是{{#oAsList}} {{key}} has value {{value}}; {{/oAsList}}
【讨论】:
我昨天也遇到了同样的情况,经过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/
【讨论】: