在 HAML 中循环多个数组

Looping multiple arrays in HAML

我正在尝试在 HAML 中创建一个可能使用多个数组的循环。让我解释一下我的意思。

我有如下所示的 HAML 代码:

- ['thumb1', 'thumb2', 'thumb3', 'thumb4'].each_with_index do |value, index| 
  - ['head1', 'head2', 'head3', 'head4'].each do |i|
    %span.span{:class => "photo-#{value}"} #{value} 
    %a #{i}ere

它输出为:

<span class='photo-thumb1 span'>thumb1</span>
<a>head1</a>
<span class='photo-thumb1 span'>thumb1</span>
<a>head2</a>
<span class='photo-thumb1 span'>thumb1</span>
<a>head3</a>
<span class='photo-thumb1 span'>thumb1</span>
<a>head4</a>
<span class='photo-thumb2 span'>thumb2</span>
<a>head1</a>
<span class='photo-thumb2 span'>thumb2</span>
<a>head2</a>
<span class='photo-thumb2 span'>thumb2</span>
<a>head3</a>
<span class='photo-thumb2 span'>thumb2</span>
<a>head4</a>
<span class='photo-thumb3 span'>thumb3</span>
<a>head1</a>
<span class='photo-thumb3 span'>thumb3</span>
<a>head2</a>
<span class='photo-thumb3 span'>thumb3</span>
<a>head3</a>
<span class='photo-thumb3 span'>thumb3</span>
<a>head4</a>
<span class='photo-thumb4 span'>thumb4</span>
<a>head1</a>
<span class='photo-thumb4 span'>thumb4</span>
<a>head2</a>
<span class='photo-thumb4 span'>thumb4</span>
<a>head3</a>
<span class='photo-thumb4 span'>thumb4</span>

但我真正想要的输出是:

<span class='photo-thumb1 span'>thumb1</span>
<a>head1</a>
<span class='photo-thumb2 span'>thumb1</span>
<a>head2</a>
<span class='photo-thumb3 span'>thumb1</span>
<a>head3</a>
<span class='photo-thumb4 span'>thumb1</span>
<a>head4</a>

我在这里错过了什么?如果我尝试擦除空格,它只会引发错误。

抱歉,您的问题太令人困惑了。这会是您需要的东西吗?

- [['tb1', 'hd1'], ['tb2', 'hd2'], ['tb3', 'hd4']].each do |thumb, head|
  %span{class: "photo-#{thumb} span"}= thumb
  %a= head

我想你要找的是zip:

- ['thumb1', 'thumb2', 'thumb3', 'thumb4'].zip(['head1', 'head2', 'head3', 'head4']) do |thumb, head|
  %span.span{:class => "photo-#{thumb}"}= thumb
  %a= head