使用Handlebars Helpers查找对象的长度

时间:2016-04-04 11:24:55

标签: object handlebars.js helpers

我正在尝试编写一个帮助器,它将一个对象作为参数并返回它的长度。该长度将分配给表中td的rowspan。这就是我想要做的事情

'getRowSpan': function(opts) {
     return Object.keys(opts.fn(this)).length;
 }

在表格中我做了

<td rowspan="{{#getRowSpan logs}}">

在哪里记录我拥有的对象。

我不知道我哪里错了。 任何人都可以帮助我吗? 感谢

1 个答案:

答案 0 :(得分:1)

我不知道opts.fn(this)应该做什么。根据您的描述,我认为您正在寻找的帮助是:

Handlebars.registerHelper('getRowSpan', function (context) {
    return Object.keys(context).length;
});

接下来,如this answer中所述,'#'适用于block helpersgetRowSpan不是块帮助器,因此应该像:

一样访问它
<td rowspan="{{getRowSpan logs}}">

修改 从问题中可以清楚地看出,传递给帮助程序的上下文和选项参数存在一些混淆。我正在使用opts从我的处理程序替换标识符context,以明确我们在上下文对象上调用Object.keys()而不是选项哈希。