我试着在源码中完成以下内容:
<div id="box<%=id%>"></div>而不会逃脱哈默尔的任何征兆。
%div{ :id => "box_<%=id%>" }产生
<div id='box_<%=id%>'></div>现在,我能用Haml做到这一点的唯一方法是使用HTML和硬编码:plain,而不使用任何View Helper。我怎么才能修复它呢?
我之所以需要它,是因为由于第三方语法约定,我不得不遵循这个约定:JavaScript Micro-Templating
参考资料:
Haml reference
发布于 2010-08-22 13:41:54
您说您正在用Haml编写代码,但是括号中显示的是Erb。
% }
更新:当我写这个答案的时候,我以前还没有使用过JS模板框架。我很抱歉没有理解为什么这是必要的。
发布于 2011-01-04 05:25:48
基本上,只要不对这一条语句使用HAML即可。例如,假设您现在正在HAML中执行类似的操作:
%script#template(type="text/html")
%div{ :id => "box_<%=id%>" }取而代之的是:
%script#template(type="text/html")
<div id="box_<%=id%>"></div>它会将脚本标记正确地解释为HAML,然后由于您没有使用任何%、#等来开始下一行,它会将该行解释为纯文本并传递它。对我来说似乎很好,我有一个和你非常相似的案例。我做的唯一一件事就是在页面的head中使用以下Javascript语句将jQote (我用于Javascript模板的模板引擎)标记从%更改为$:
%script( type="text/javascript")
$(function() { $.jqotetag( '$' ); });这样,%符号就不会让Ruby解释器感到困惑。所以最后一个例子是:
%script#template(type="text/html")
<div id="box_<$=id$>"></div>祝好运!
发布于 2014-02-09 09:08:18
http://haml.info/docs/yardoc/file.REFERENCE.html#unescaping_html
! %div(id="box_<%= data.id %>")https://stackoverflow.com/questions/3540310
复制相似问题