【问题标题】:How to render boolean data attributes with Haml?如何使用 Haml 呈现布尔数据属性?
【发布时间】:2012-11-23 10:08:44
【问题描述】:

更新: 事实上,Haml 已经自动完成了!但是,我在 link_to 助手中有一个哈希,而不是 Haml 标记,甚至没有注意到它。傻我!所以这个问题几乎是无效的。

Haml 使得渲染布尔 HTML 属性变得非常容易:

%input{checked: @boolean}

如果@boolean 是虚假的,则呈现一个简单的<input>,否则呈现<input checked>

Haml 还可以轻松呈现数据属性:

%a{data: { is_special: false } }

渲染:<a data-is-special="false">

有没有办法让 Haml 将此自定义 data-is-special 属性解释为布尔值?如果分配了虚假值,我希望存在它,并且如果分配了任何真实值,它就存在。

【问题讨论】:

  • %input{:checked => true} 是正确的 haml 布尔属性语法,如感兴趣的人在更新中提到的那样

标签: ruby-on-rails html haml


【解决方案1】:

括号中的代码是普通的 ruby​​ 代码,所以只要你能在 ruby​​ 中执行这个任务,你自己就有一个解决方案。我想出了类似的东西:

def remove_false(hsh)
  Hash[hsh.each_pair.select {|key, value| value}]
end

{data: remove_false(is_special: false)} #=> {:data => {}}

如果您在单个哈希中组合了要特别处理且通常处理的键,则此解决方案效果不佳。

【讨论】:

  • 不错!不过,我想知道 Haml 是否可以对以 is- 开头或以问号结尾的属性做一些聪明的事情。
  • 哦,Haml 已经按照我的要求做到了。只是我在 Rails 助手中有一个哈希,而不是 Haml 标记。无论如何,谢谢,这对帮助者仍然有用。
猜你喜欢
  • 2012-01-21
  • 1970-01-01
  • 2014-01-22
  • 2014-08-12
  • 2020-07-04
  • 1970-01-01
  • 2012-03-01
  • 2014-07-12
  • 2014-05-27
相关资源
最近更新 更多