2012-04-23 26 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