【问题标题】:how to add a class to a conditional in HAML如何将类添加到 HAML 中的条件
【发布时间】:2015-08-04 19:56:13
【问题描述】:

好的,我的文件中有这一行,它在 HAML 中

- unless @place.blank?

无论条件如何,我需要为其添加一个类。

我试过这样做:

- {:class => ("extra_middle" unless place.blank?)}

这行不通。我尝试了其他变体无济于事。

编辑

请记住,在 HAML 中,有一个破折号表示除非不是空白,否则不会呈现,对吧?

编辑 2

为了解释更多,我试图添加的类是为了隐藏该特定部分,除非有人点击一个链接,然后该链接将显示它......

因此,无论位置是否为空白,该类都不管...

【问题讨论】:

  • 你能再分享一些代码吗?/
  • 错误是什么?根据this,我看到你是对的
  • 显示更多代码......
  • 您正在将CSS 类添加到HTML 元素,对吗?那个 HTML 元素在哪里?

标签: ruby haml


【解决方案1】:

在这里称我为愚蠢,但你能不能把 -unless place.blank 放在一边?在一个 div 里面

 .extra_middle
    -unless place.blank?
      .Whatever else you need

【讨论】:

  • 一点也不。我完全忘记了 KISS 原则。所以,很明显,我是这里的笨蛋。你的回答奏效了。
【解决方案2】:

我通常使用三元运算,例如:

%div{ class: (place.blank? ? nil : 'extra_middle') }

...或者变成一个助手,如果它变得比这更复杂的话。

【讨论】:

  • 那行不通。我收到此错误:` 语法错误,意外 =>,期待关键字结束:class=> place.blank? ? nil : 'extra_middle'` ...我猜由于行首的破折号它不起作用?我试过没有线,这就是我得到的:Invalid filter name ":class => place.blank? ? nil : 'extra_middle'".
  • 我在帖子中添加了进一步的说明,说明我要对课程做些什么。希望对您有所帮助。
  • 扩展了示例,因此在粘贴时它可以正常工作。希望对您有所帮助。
  • 谢谢。我刚试过。它不起作用。这是我得到的错误:unknown type of %string %div{ class: (place.blank? ? nil : 'extra_middle') }
  • 顺便说一句,如果我正确地阅读了您的行,它假定如果该位置为空白,则 css 类将呈现,对吗?
猜你喜欢
  • 2011-11-14
  • 2011-03-28
  • 1970-01-01
  • 2014-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 2012-05-20
相关资源
最近更新 更多