是否有内置的方法来遍历对象的属性?

新手上路,请多包涵

是否有 Mustache / Handlebars 循环遍历 对象 属性的方法?

所以与

var o = {
  bob : 'For sure',
  roger: 'Unknown',
  donkey: 'What an ass'
}

然后我可以 在模板引擎 中做一些等同于

for(var prop in o)
{
    // with say, prop a variable in the template and value the property value
}

原文由 Ben 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 522
2 个回答

自 Handlebars 1.0rc1 起内置支持

Handlebars.js 中已添加 对此功能的支持,因此不再需要外部助手。

如何使用它

对于数组:

 {{#each myArray}}
    Index: {{@index}} Value = {{this}}
{{/each}}

对于对象:

 {{#each myObject}}
    Key: {{@key}} Value = {{this}}
{{/each}}

请注意,只有通过 hasOwnProperty 测试的属性才会被枚举。

原文由 Jon 发布,翻译遵循 CC BY-SA 3.0 许可协议

它实际上很容易实现为一个助手:

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

然后像这样使用它:

 {{#eachProperty object}}
    {{property}}: {{value}}<br/>
{{/eachProperty }}

原文由 Ben 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题