簡體   English   中英

rails部分中的條件格式

[英]conditional formatting in rails partials

我正在渲染部分軌道,我想在渲染部分時交替使用背景顏色。 我知道這不是很清楚,所以這里是我想要做的一個例子:

行一灰色背景行兩黃色背景行三灰色背景行四黃色背景
  • 對不起stackoverflow接縫,以防止顯示背景顏色,但我認為這使我的想法清楚

這是我正在使用的視圖代碼

<tr bgcolor="#AAAAAA">
  <td><%= row.name %></td>
</tr>

_row.html.erb部分看起來像這樣

 <tr bgcolor="#AAAAAA"> <td><%= row.name %></td> </tr> 

問題是我不知道如何更改每隔一行的背景顏色。 有沒有辦法做到這一點?

你可以使用Cycle助手。 像這樣的東西:

<tr class="<%= cycle("even", "odd") %>">
  <td><%= row.name %></td>
</tr>

或者在你的情況下使用bgcolor,雖然我會建議使用css類。

您可以循環使用兩個以上的值:cycle('first','second','third','and_more')。

還有:reset_cycle('cycle_name')這確保在每次迭代時,您將再次使用循環列表的第一個值重新開始。

有關更多示例,請查看rails 文檔

循環中有一個“陷阱”:如果你應該附加到字符串,循環就會中斷。 例如,

cycle('odd', 'even') << " some other classes"

會打破這個循環。 但是,反轉順序或構造字符串工作正常:

"some other classes " << cycle('odd', 'even')
"#{cycle('odd', 'even')} some other classes"

我還沒有深入研究消息來源,看看為什么會這樣。 另外,我正在使用Rails 3.2.x.

另一個想法,你可以使用javascript來改變元素的樣式(TD的%2的總數)。

這樣你所有的視覺內容都包含在html / css / javascript層中。 然后,如果禁用javascript,此技術將不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM