我需要在元素的属性中使用一些把手块助手。我怎么才能得到
.some.class{:class => "{{if property}} otherClass {{/if}}"}
正确解析?这是编译后的输出:
<div class='class otherClass property}} some {{/if}} {{if'></div>
我已经尝试转义每个非单词字符,尝试单引号,并调整间距,但似乎没有什么可以修复它。我希望找到一个比使用:plain关键字更优雅的解决方案。
答案 0 :(得分:1)
我发现你需要在{{}}之前为Haml添加一些字符才能接受它。例如:
%div.some.class{:class => "a{{foo}}"}
不知道,但符合我的目的。
答案 1 :(得分:0)
实际上,这个技巧对任何中等复杂的把手表达都不起作用。
最后,我通过在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>
答案 2 :(得分:0)
将所有类移到class属性中,而不是同时使用类简写点表示法和类属性。
.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