使用 Handlebars Helpers 查找对象的长度

Find length of an object using Handlebars Helpers

我正在尝试编写一个将对象作为参数并returns它的长度的助手。此长度将分配给 table 中 td 的行跨度。这就是我想要做的

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

而在 table 我做

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

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

我不知道我哪里错了。 谁能帮我解决这个问题? 谢谢

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

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

接下来,如this answer, the '#' is for block helpers所述。 getRowSpan 不是块助手,因此应该像这样访问它:

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

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