使用 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()
而不是选项哈希。
我正在尝试编写一个将对象作为参数并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()
而不是选项哈希。