Javascript 把手中的每个嵌套顶层

Javascript 把手中的每个嵌套顶层,javascript,handlebars.js,each,Javascript,Handlebars.js,Each,在这种情况下 { letters: ['a', 'b', 'c'], numbers: ['1', '2', '3'] } 我将如何生产 a1 a2 a3 b1 b2 b3 c1 c2 c3 实质上, {{#each letters}} {{#each ../numbers}} what to put here? {{/each}} {{/each}} 我特别使用了,但是理论上这与功能奇偶性非常接近,所以在handlebar.js中如何实现应该是兼容的 参考文献中,我的实际用例是C

在这种情况下

{
  letters: ['a', 'b', 'c'],
  numbers: ['1', '2', '3']
}
我将如何生产

a1
a2
a3
b1
b2
b3
c1
c2
c3
实质上,

{{#each letters}}
{{#each ../numbers}}
what to put here?
{{/each}}
{{/each}}
我特别使用了,但是理论上这与功能奇偶性非常接近,所以在handlebar.js中如何实现应该是兼容的

参考文献中,我的实际用例是C++代码生成。问题主要是关于访问内部循环的这个属性。现在我的代码看起来像

{{#each variant}}
{{#each ../typearg}}{{#if @first}}template <{{/if}}{{this}}{{#if @last}}>{{else}},{{/if}}{{/each}}
{{/each}}

我认为最好的解决办法是创建一个新的把手助手,它将返回
html

Handlebars.registerHelper('multi_list', function(context, options) {
  var html = "";
  var letters = options.hash.letters;
  var numbers = options.hash.numbers;

  for (var i=0; i< letters.length; i++) {
    for (var j=0; j <  numbers.length; j++) {
        html += '<li>' + (letters[i] + '' + numbers[i] + '</li>';
    }
  }

  return html;
});

看起来像一个嵌套的
#每个
循环,外部有
字母
,都可以。有没有办法维护嵌套结构?请添加
把手锈迹
作为标记,特别是如果您基于此问题创建错误报告。我为您添加了它,因为我不相信你有能力这样做,新的TAGSI已经把我的实际用例添加到OP,这是C++代码生成。实际上,在嵌套循环中,我要做的模板工作比简单地输出字母要多得多。如果是这样的话,您可以将所有逻辑移到助手内部。您可以在助手中编写JS中的任何复杂逻辑。最好从
HTML
中抽象出复杂性。这是Handlebar中的helpers的主要原因。我假设访问嵌套循环中的值是tepmlating语言的基本功能。否则,在任何时候支持嵌套循环都没有什么价值all@LucilleBlumire如果您仍然想在
HTML
方面这样做,我认为您可以这样做。要访问最内部循环的值,可以执行
{{this}}或{{./this}}
。要访问最外层循环的值,可以执行
{{../this}
。完整的
每一个
代码块是什么样子的?啊,在车把模拟器上尝试一下,似乎我在车把锈迹中发现了一个bug,我要去打开一个问题,你想发布一个做{{{this}和{{../this}的例子作为答案,我会把它标记为已接受,因为这是我一直在寻找的
template <T>
template <T>
{
    typearg: [ 'T' ],
    variant: [{ }, { }]
}
Handlebars.registerHelper('multi_list', function(context, options) {
  var html = "";
  var letters = options.hash.letters;
  var numbers = options.hash.numbers;

  for (var i=0; i< letters.length; i++) {
    for (var j=0; j <  numbers.length; j++) {
        html += '<li>' + (letters[i] + '' + numbers[i] + '</li>';
    }
  }

  return html;
});
{{#each variant}}
    {{#each ../typearg}}
        {{#if @first}}
            template <
        {{/if}}
            {{this}}
         {{#if @last}}
            >
         {{else}}
            ,
         {{/if}}
     {{/each}}

      {{../this}}

 {{/each}}