【问题标题】:Conditionally set CSS class [duplicate]有条件地设置CSS类[重复]
【发布时间】:2012-02-16 01:18:24
【问题描述】:

如何转换此 ERB 代码:

<div <%= 'class="highlight"' if job.done %>>

进入Haml代码?

【问题讨论】:

    标签: ruby sinatra haml erb


    【解决方案1】:
    %div{:class => ('hightlight' if job.done)}
    

    我相信也会做到这一点,并且不会创建 class= '' 如果 job.done == false,也看起来更像您的初始代码

    【讨论】:

    • 这对我来说看起来更干净,谢谢!
    【解决方案2】:
    %div{class:job.done && "highlight"}
    

    如果您将属性设置为falsenil,Haml 将完全省略该属性。

    【讨论】:

      【解决方案3】:
      %div{job.done ? {:class => "highlight"} : {}}
      
      %div{:class => job.done ? "highlight" : ""}
      

      【讨论】:

      • 后者实际上创建了&lt;div class=''&gt;&lt;/div&gt;,一个空类。这在功能上是相同的,但与 OP 要求的输出不同。
      • @Phrogz 是的,但在大多数情况下都可以。你的方法可能更好,我不知道。
      猜你喜欢
      • 1970-01-01
      • 2015-05-02
      • 2018-04-06
      • 1970-01-01
      • 2012-03-27
      • 2021-12-22
      • 1970-01-01
      • 2018-07-06
      • 2021-05-24
      相关资源
      最近更新 更多