【问题标题】:Conditionally creating a hidden attribute in Slim with Ruby on Rails在 Slim 中使用 Ruby on Rails 有条件地创建隐藏属性
【发布时间】:2021-08-02 04:22:42
【问题描述】:

如果条件为真,我正在尝试让 Slim 生成以下 HTML:

<div id="start_button" hidden="hidden">

我尝试了各种方法,比如显而易见的:

#start_button #{('hidden="hidden"' if CONDITION?)}
     = link_to 'Get Started', ...etc...

但这会产生:

<div id="start_button">hidden="hidden"
= link_to 'Get Started',..etc...

我知道在将类等属性设置为某物时该怎么做,但是因为“隐藏”必须是全有或全无,这给我带来了问题。

今晚我经历了很多兔子洞,因此感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails slim-lang


    【解决方案1】:

    这在文档中有说明:

    Ruby 属性

    在 = 之后直接写 ruby​​ 代码。如果代码包含空格 您必须将代码包装到括号中(...)。你也可以 直接写哈希 {...} 和数组 [...]。

    因此,() 中的任何内容都被评估为 Ruby 代码,如果该语句被评估为 false,它会以某种方式“跳过”,否则它会执行 true 分支中所述的操作。

    #start_button hidden=('hidden' if true)
    <div hidden="hidden" id="start_button"></div>
    
    #start_button hidden=('hidden' if false)
    <div id="start_button"></div>
    

    【讨论】:

    • 好的,所以我猜它与其他属性相同。我没想到“跳过”位。我认为它会输出&lt;div hidden id="start_button"&gt;&lt;/div&gt;,这不好。现在我明白了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    相关资源
    最近更新 更多