每次从车把模板调用partial时如何传递唯一的增量值

问题描述

我正在使用HandleBar模板。我有一个部分叫做“表”。我在模板中多次使用“部分”生成动态表和行。

我希望每个表的每一行都有唯一的索引。 @index将无济于事,因为我还需要其他表的唯一键。例如:

Table 1

Index Name
----------
1     ABC
2     XYZ


Table 2
--------
Index Name
3     ABC
4     XYZ`


{{> table tableData=table1 cardinal=1}}

{{> table tableData=table2 cardinal=1}}
 

我尝试使用此帮助器来递增变量,但是它的值不可用于下一个表。

Handlebars.registerHelper("increment",function (value) {
     return parseInt(value) + 1;
});

希望这很有道理!

解决方法

如果省略了increment参数,则您的value助手就足够了。该参数将强制您的子部件知道起始编号,但这正是导致您创建帮助程序的问题-您的子部件不知道起始编号。

如果您创建一个变量来保存增量计数,并让助手使该值递增,并在每次调用它时将其返回,则将可以正常工作。助手将变为:

let count = 0;
Handlebars.registerHelper("increment",function () {
     return ++count;
});

它可以从模板或部分中调用,就像{{ increment }}

我创建了一个fiddle供参考。