我正在嘗試在haml中編寫此html以添加一個id標記,如果該項目是當前的。這是爲jquery高亮設置。有條件地設置HTML元素ID與HAML
<% if line_item == @current_item %>
<tr class="line_item id="current_item">
<% else %>
<tr class="line_item">
<% end %>
<td><%= line_item.quantity %>×</td>
<td><%= line_item.product.title %></td>
<td class="item_price"><%= number_to_currency(line_item.total_price) %></td>
</tr>
因爲我不想寫一個輔助方法,我堅持在標籤內的if語句:
%tr.line_item{ :id => (line_item == @current_item ? '' : 'current_item') }
%td
= line_item.quantity
%td
\x #{line_item.product.title}
%td.item_price
= number_to_currency(line_item.total_price)
%td.item_remove
= button_to 'Remove', line_item, :method => :delete
然而,「current_item」這個ID標籤與所有的堅持物品而不僅僅是當前的物品。這會導致javascript突出顯示所有或錯誤的條目。關於如何獲得合作的想法?
謝謝!希望我能讓它更清潔 – ScotterC 2010-10-04 23:50:45
這就是讓我感覺不好的「」! :-) – 2013-08-21 08:06:58
在HAML中使用nil來「忽略」一個屬性的能力是一個很好的技巧 - 謝謝指出! – jpwynn 2014-01-09 22:40:02