在部分参数中使用@index

Use @index in a partial parameter

我不确定如何在 mustache/handlebars 部分参数映射中引用 @index(来自 #each 助手)。例如

{{#each this.things}}
    <p>Thing {{@index}}</p>
    {{> mypartial id='thing{@index}' }}
{{/each}}

产量:

    <p>Thing 0</p> <!-- correct -->
    <div id="thing{@index}">/div> <!-- incorrect -->

一个选项是将我的部分更改为在其中引用@index,但我想继续使用 id 部分参数。

正确的方法是使用 concat 助手。

例如

{{> mypartial id=(concat 'thing' @index) }}

这是我的 handlebars.java 连接助手的代码片段:

public class ConcatHelper implements Helper<Object> {
    @Override
    public CharSequence apply(Object context, Options options) {
        StringBuilder sb = new StringBuilder();
        for (Object param : options.params) {
            sb.append(param);
        }
        return sb.toString();
    }
}

产量:

<p>Thing 0</p>
<div id="thing0">/div>