2012-04-23 29 views
1

我想插入一个div.row每三个块为了换行三个span在一起为下面的haml片段。如何用haml每隔几格插入一个块?

但是,此代码插入一个<div class="row"></div>而不是包装.span4

- data.apps.applications.each_with_index do |app, index| 
    - if index%3 == 0 
    .row # This is the line I want to insert 
    .span4 

erb我怎么能做到这一点在中引入haml或者在这种情况下,更适合?

+0

它不工作?如果是这样,怎么样? – 2012-04-23 14:03:27

+1

你需要正确的缩进才能正常工作 – 2012-04-23 14:58:32

回答

2

你的缩进是错误的

- data.apps.applications.each_with_index do |app, index| 
    - if index%3 == 0 
    .row # This is the line I want to insert 
    .span4 
+0

据我所见,这会将每个'.span4'放在'.row'之外,这意味着该行不包含跨度 – 2015-07-17 04:23:15

+0

您的缩进是错误的。 – courtsimas 2017-03-27 21:20:13

8

我想你想要的是这样的:

-data.apps.applications.each_slice(3) do |apps| 
    .row 
    -apps.each do |app| 
     .span4 

这使用each_sliceapps是来自applications的三个项目的数组。

这需要三个要素的组从applications,并为每个组增加了一个row格,然后添加一个span4 DIV的每一个元素,所以你得到的是这样的:

<div class="row"> 
    <div class="span4"></div> 
    <div class="span4"></div> 
    <div class="span4"></div> 
</div> 
<div class="row"> 
    <div class="span4"></div> 
    <div class="span4"></div> 
    <div class="span4"></div> 
</div> 

如果你不没有三个要素的倍数,最后一个组只有一个或两个成员。

+0

哇,惊人的解决方案。工作完美,谢谢。 – BlackDivine 2014-02-21 13:44:03