在 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
我正在尝试在 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