在Mustache.js中键的数字索引的索引:值

时间:2014-03-28 23:37:21

标签: json mustache

我有这个对象:

{nodes: [
        {
            node: {
                actors: {
                    1: "Actor 1",
                    2: "Actor 2"
                }
            }
        }]

在我的Mustache模板中,我试过这个并且它有效:

{{#actors}}
   {{1}}<br />
   {{2}}
{{/actors}}

但我不知道我有多少演员,我需要像索引这样的东西。似乎handlebars.js知道如何做到这一点,但我想使用Mustache.js。

1 个答案:

答案 0 :(得分:1)

我会更改JSON的格式,如下所示:

"actors": [ {"name": "Actor 1"}, {"name": "Actor 2"}]

然后你可以做

{{#actors}}
  {{name}}
{{/actors}}

如果您想使用Handlebars,可以为此指定一个帮助程序:

Handlebars.registerHelper('eachProperty', function (context, options) {
    var ret = "";
    for (var prop in context) {
        if (prop)
            ret = ret + options.fn(({ property: prop, value: JSON.stringify(context[prop]) }));
    }
    return ret;
});

因此,当您想要迭代对象的属性时,您可以执行以下操作:

{{#eachProperty actors}}
  {{value}}
{{/eachProperty}}

另请注意,{{property}}会为您提供对象的索引值。