Given.button{ :id => "<%= 'class_name' %>" }
正在工作,我假设您已:escape_attrs
设置为 false,并且可能:attr_wrapper
设置为"
,这将产生输出:
<div class="button" id="<%= 'class_name' %>"></div>
给您带来麻烦的位.button{ :class => "<%= 'class_name' %>" }
将产生:
<div class="%> 'class_name' <%= button"></div>
当 Haml 将语法 ( ) 中的class
元素与属性哈希 ( ) 的类条目的内容组合时,会导致问题。Haml 将后者视为一个空格分隔的列表,添加元素,然后对结果数组进行排序,产生您看到的输出。(像这样将列表视为空格分隔的列表对于“纯”HTML 来说是有意义的,但是当 javascript 框架以这种方式使用它时就会崩溃。排序的原因是为 Haml 的测试套件提供一致的类条目顺序。).
button
<%= 'class_name' %>
button
一种解决方法是不要将.
语法和:class
属性哈希中的条目一起使用 - 只需使用class
条目:
%div{ :class => "button <%= 'class_name' %>" }
产生:
<div class="button <%= 'class_name' %>"></div>
另一种解决方法(您已经发现)是从下划线模板中删除空格,因此 Haml 将其视为单个实体并且不会将其拆分。