可能重复:
附加类,如果条件Haml的是真实的(使用Rails)
我使用的模板,使您可以标记列表项为current
(使用class=current
),在导航栏中突出显示。
在HAML,这看起来像:
%li.current
Menu item A
%li
Menu item B
%li
Menu item C
我有一个西纳特拉鉴于这种代码,并希望以编程方式添加class=current
,根据参数的视图。
如何做到这一点的最巧妙的方法可以吗?
目前,我做这样的:
- if section == "pages"
%li.current
%a{:href => "#pages"} Pages
- else
%li
%a{:href => "#pages"} Pages
这感觉太冗长。
您可以内嵌条件,以确定是否需要对黎%的类
%li{ :class => ('current' if section == "pages") }
%a{ :href => "#pages" } Pages
如果section
可以是另一个字符串,而不是"pages"
,你应该使用类似mguymon回答。 但是,如果它只能是nil
, false
或"pages"
这样的代码更加简洁:
%li{ class:section && 'current' }
%a{ :href => "#pages" } Pages
这种使用的原则是HAML省略nil
或false
属性,并在Ruby中每个对象evalueted为true
,除非: false
和nil
。
所以,如果section
是不同于nil
或false
,那么section && 'current'
输出'current'
否则输出false
省略类属性。
文章来源: Neat way to conditionally test whether to add a class in HAML template [duplicate]