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

How to pass unique incremental value every time when partial is called from the handlebar template

我正在使用 HandleBar 模板。我有一个名为“table”的部分。我在我的模板中多次使用这个“部分”来生成动态 table 和行。

我希望每个 table 的每一行都有一个唯一索引。 @index 不会有帮助,因为我也需要其他 table 的唯一密钥。例如:

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}}
 

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

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

希望这是有道理的!

如果您省略 value 参数,您的 increment 助手就足够了。该参数强制您的分音器知道起始编号应该是什么,但这正是导致您创建帮助程序的问题 - 您的分音器不知道起始编号。

如果您创建一个变量来保存递增计数并让助手递增此值并 return 它每次被调用时,这将工作得很好。助手变为:

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

它会从模板或部分调用,就像:{{ increment }}.

我创建了一个fiddle供参考。