12

我开始学习 HAML:我无法将闪存块转换为 HAML:

<% flash.each do |key, value| %>
  <div class="alert alert-<%= key %>">
    <button type="button" class="close" data-dismiss="alert">×</button>
    <strong><%= value %></strong>
  </div>        
<% end %>
4

1 回答 1

17

干得好:

= flash.each do |key, value|
  .alert{ :class => "alert-#{key}" }
    %button.close{ :data => { :dismiss => "alert" } } x
    %strong
      = value

仅供参考,您可以通过在声明后将属性附加为哈希来将属性添加到任何元素。如果您不指定元素,仅指定类或 ID,HAML 会将该元素作为具有给定类或 ID 的 div。但是你可以通过多种方式做到这一点。例如,这些都是一样的:

%div{:class => 'foo bar', :id => 'test' }
.foo{:class => 'bar', :id => 'test'}
#test.bar{:class => 'foo'}
#test.foo.bar

所有输出:<div class="foo bar" id="test"></div>

您需要将计算属性放入哈希中,即:

- klass = "bar"
%div{ :class => klass }

输出:<div class="bar"></div>

另外,请注意,在上述所有示例中,:attribute => 'value'可以表示为attribute: 'value',例如:

%button.close{ data: { dismiss: 'alert' } } x

希望有帮助。

于 2012-12-20T19:16:20.717 回答