我正在使用HAML来制作html模板,但我在编写属性时遇到了问题,这些属性将被JavaScript字符串模板所取代。
有问题的代码行如下所示:
%div{:class => "<%= from_class %>"}
HAML尝试对<%= %>标签进行编码:
<div class="<%= from_class %>">
我不希望这种情况发生在这种情况下...有人知道怎么做吗?
发布于 2010-10-29 08:19:24
在下一个版本的Haml (3.1)中,将有一个:escape_attrs
选项,您可以将该选项设置为false
以防止发生这种情况。您还可以在命令行上传递--no-escape-attrs
。要立即使用它,您可以使用gem install haml --prerelease
安装alpha版本。
发布于 2018-11-30 20:43:52
正如上面的@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)移到class: text中:
%div{class: "<%= field_name %> input-group-addon"}
这将呈现我们想要的:
<div class="<%= field_name %> input-group-addon">
您可以不使用空格(<%=field_name%>),但如果您需要任何需要空格的模板逻辑,请在文本中引入.dot-class ...
发布于 2015-10-20 05:52:53
在this answer中,对html_safe使用单独的ruby变量:
- foo = "&".html_safe
%a(href='/posts' data-icon=foo aria-hidden='true')
https://stackoverflow.com/questions/4048451
复制相似问题