HAML中的条件类

16

我有这段HTML代码

  <tr <% if ap.overdue? %>class = "overdue"<% end %> >
    <td><%= ap.id %></td>
    <td><%= link_to ap.affiliate.title, superadmin_affiliate_path(ap.affiliate) %></td>
  </tr>

我该如何在HAML中编写等效的代码? 特别是第一行,只有当if条件为真时才分配一个类。


1
http://html2haml.heroku.com/ 这个网站非常有用,你可以使用它。 - matanco
2
可能是在Haml中如果条件为真则附加类的附属类的重复问题。 - Ian Hunter
2个回答

30

试一试

%tr{ :class => ("overdue" if ap.overdue?) }

如果您有一些必需的类和一个或多个变量类,您可以使用变量 (即类:@some_var),或使用带有三元条件运算符的字符串插值 (即类:"some-class #{ap.overdue? ? "overdue" : ""}")。 - Chris Hanson

6
HAML有一个很好的内置方法来处理这个问题:
%tr{ class: [ap.overdue? && 'overdue'] }

这样的工作原理是,条件得到评估,如果为真,则将字符串包含在类中;如果不是,则不会包含。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接