6

我需要在元素的属性中使用一些把手块助手。我怎样才能得到

.some.class{:class => "{{if property}} otherClass {{/if}}"}

正确解析?这是编译后的输出:

<div class='class otherClass property}} some {{/if}} {{if'></div>

我尝试转义每个非单词字符,尝试单引号并调整间距,但似乎没有任何解决方法。我希望找到一个比仅使用 :plain 关键字更优雅的解决方案。

4

3 回答 3

1

我发现您需要在 {{}} 之前添加一些字符才能让 Haml 接受它。例如:

%div.some.class{:class => "a{{foo}}"}

不知道,但适合我的目的。

于 2012-07-16T19:22:49.083 回答
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>
于 2015-01-15T06:44:22.073 回答
0

将所有类移入类属性,而不是同时使用类速记点表示法和类属性。

.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

于 2016-06-29T08:30:32.410 回答