我正在使用HAML制作html模板,但在编写将被JavaScript字符串模板替换的属性时出现问题。
有问题的行看起来像这样:
%div{:class => "<%= from_class %>"}
HAML尝试编码&lt;%=%&gt;标签:
<div class="<%= from_class %>">
我不希望在这种情况下发生这种情况......任何人都知道如何做到这一点?
答案 0 :(得分:4)
在下一版本的Haml(3.1)中,会有一个:escape_attrs
选项,您可以将其设置为false
以防止此情况发生。您还可以在命令行上传递--no-escape-attrs
。要立即使用此功能,您可以使用gem install haml --prerelease
安装alpha版本。
答案 1 :(得分:0)
从this回答,使用带有html_safe的单独ruby变量:
- foo = "&".html_safe
%a(href='/posts' data-icon=foo aria-hidden='true')
答案 2 :(得分:0)
就像上面的@Natalie Weizenbaum和@rchampourlier状态一样,将其放在初始化程序中
config / initializers / haml.rb
Haml::Template.options[:escape_attrs] = false
还要注意,因为haml决定了它自己的类顺序:
这是由于空格:
.input-group-addon{class: "<%= field_name %>"}
将对此渲染,这不适用于模板:
<div class="%> <%= field_name input-group-addon">
解决方案是将点类(.input-group-addon)移至该类:text:
%div{class: "<%= field_name %> input-group-addon"}
将呈现我们想要的内容:
<div class="<%= field_name %> input-group-addon">
不使用空格(<%= field_name%>)可能对您有用,但是如果您需要任何需要空格的模板逻辑,请在文本中添加.dot类...