我正在尝试编写一个帮助器,它将一个对象作为参数并返回它的长度。该长度将分配给表中td的rowspan。这就是我想要做的事情
'getRowSpan': function(opts) {
return Object.keys(opts.fn(this)).length;
}
在表格中我做了
<td rowspan="{{#getRowSpan logs}}">
在哪里记录我拥有的对象。
我不知道我哪里错了。 任何人都可以帮助我吗? 感谢
答案 0 :(得分:1)
我不知道opts.fn(this)
应该做什么。根据您的描述,我认为您正在寻找的帮助是:
Handlebars.registerHelper('getRowSpan', function (context) {
return Object.keys(context).length;
});
接下来,如this answer中所述,'#'适用于block helpers。 getRowSpan
不是块帮助器,因此应该像:
<td rowspan="{{getRowSpan logs}}">
修改强>
从问题中可以清楚地看出,传递给帮助程序的上下文和选项参数存在一些混淆。我正在使用opts
从我的处理程序替换标识符context
,以明确我们在上下文对象上调用Object.keys()
而不是选项哈希。