[英]conditional formatting in rails partials
我正在渲染部分軌道,我想在渲染部分時交替使用背景顏色。 我知道這不是很清楚,所以這里是我想要做的一個例子:
行一灰色背景行兩黃色背景行三灰色背景行四黃色背景這是我正在使用的視圖代碼
<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.