我想創建一個兩列表格。我想將項目的數據放入每個'列',因此我只想在項目數量均勻時開始新行。有條件地啓動一個新表格行
所以我循環了一個項目列表,並推進了每次通過一個計數器。當計數器%2 == 0我想開始一個新行(%tr)。
- items.each do |item|
- if counter % 2 == 0
%tr{class: "something"}
%td= item[:value1]
%td= item[:value2]
- else
%td= item[:value1]
%td= item[:value2]
- counter += 1
這幾乎產生了預期的效果。我明白爲什麼創建第一個tr是因爲隨後的td標籤位於相同的標籤深度。但是如果我將它們移動到相同的深度,那麼只有前兩個td標籤被包裝到第一行,並且隨後的tds被放入一個新行(可能通過瀏覽器)。將所有td標籤縮進到相同的級別,在if子句的兩側將導致HAML崩潰(不返回任何內容)。
<tr class="something"></tr>
<tr><td>1</td>
<td>2</td>
<td>3</td>
<td>4>/td>
</tr>
那我怎麼能做到這一點?
不明白你想說什麼,但嘗試做迭代與'.each_with_index',而不是在櫃檯上。 – Zippie
你應該讓問題更簡潔。我不想讀它。 – sawa
一個例子,你的輸入是什麼樣的,你想要什麼輸出是獲得快速答案的好方法。 –