【问题标题】:Convert if else into ternary in ruby slim(temple engine)在ruby slim(寺庙引擎)中将if else转换为三元
【发布时间】:2014-02-28 17:40:52
【问题描述】:

我有这个代码

- value="true"

- if (value)
  p yes #if the condition is true I want to insert a glyphicon. (<i class="fa fa-check-circle"></i>)
- else
  p no

如何转换成condition? &lt;i class="fa fa-check-circle"&gt;&lt;/i&gt; : &lt;i class="fa fa-times-circle"&gt;&lt;/i&gt;

但这会导致错误!

【问题讨论】:

  • 您想要一个使用三元表达式的代码版本,还是询问插入评论中提到的i 标签?这是在Haml还是Slim? yesno 是什么?你的意思是使用"true"(字符串)还是true(布尔值)?
  • 我想打印出 yes 和那个段落中的图标。这是 ruby​​ slim,因为 slim 没有现有标签,我提到 HAML 因为语法相似。
  • 字符串是连同图标一起进入HTML页面吗?现在坚持了2个小时:(
  • “是”应该在&lt;p&gt; 元素中吗?如果是这样,i 也应该在里面吗?
  • 如果我写 if else 语句,它可以工作,但我想使用三元运算符执行相同的操作。即条件? :

标签: ruby slim-lang


【解决方案1】:

您的第一个代码可以简单地替换为:

= value ? "yes" : "no"

任何以= 开头的行都会被评估,并在调用escape_html 后将结果返回值插入到文档中。

因为您在 cmets 中解释说您确实希望插入 HTML 代码,所以您必须这样做:

== value ? '<i class="fa fa-check-circle"></i>' : '<i class="fa fa-times-circle"></i>'

【讨论】:

  • 当我添加引号时,它被解释为字符串,输出是 而不是图标。
  • @Ajey:啊哈,单引号转义了 HTML(我以为这是 Haml,但我看到你后来更改了标签)。改用双引号?我已经更新了我的答案。
  • 伙计!但是如何输出图标?
  • @Ajey:再次更新:尝试 == 而不是 =,因为后者调用 escape_html 而前者没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
  • 2021-03-17
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
相关资源
最近更新 更多