我需要在元素的属性中使用一些把手块助手。我怎样才能得到
.some.class{:class => "{{if property}} otherClass {{/if}}"}
正确解析?这是编译后的输出:
<div class='class otherClass property}} some {{/if}} {{if'></div>
我尝试转义每个非单词字符,尝试单引号并调整间距,但似乎没有任何解决方法。我希望找到一个比仅使用 :plain 关键字更优雅的解决方案。
我需要在元素的属性中使用一些把手块助手。我怎样才能得到
.some.class{:class => "{{if property}} otherClass {{/if}}"}
正确解析?这是编译后的输出:
<div class='class otherClass property}} some {{/if}} {{if'></div>
我尝试转义每个非单词字符,尝试单引号并调整间距,但似乎没有任何解决方法。我希望找到一个比仅使用 :plain 关键字更优雅的解决方案。
我发现您需要在 {{}} 之前添加一些字符才能让 Haml 接受它。例如:
%div.some.class{:class => "a{{foo}}"}
不知道,但适合我的目的。
实际上,该技巧不适用于任何适度复杂的车把表达式。
最后我通过在haml中使用字符串文字解决了这个问题。因此,在问题中显示的示例中。需要下面的haml,记得关闭你的标签,也就是最后一行。
\ <div class='class {{if property}} otherClass {{/if}} some '>
-# Normal haml goes here and must not start at the same indent as the above literal
\ </div>
将所有类移入类属性,而不是同时使用类速记点表示法和类属性。
.col-md-12.card{ class: "{{toLowerCase level_name}}-master-card" }
变成
%div{ class: "col-md-12 card {{toLowerCase level_name}}-master-card" }
HAML 4.0.7