渲染"< %% ="与HAML

时间:2012-09-03 13:54:32

标签: haml erb

我有一个在Sinatra中托管的Backbone.js应用程序,并通过ERB脚本呈现。主干模板使用下划线模板功能,因此变量在ERB中呈现,如下所示:

<div id="<%%= variable %>">

额外的“%”会转义该变量的呈现并使用单个“%”呈现它,这是下划线模板库所选择的。

我在升级到HAML时尝试了以下操作:

#"<%= id %>"

哪个不起作用。如何使用HAML完成相同的任务?

1 个答案:

答案 0 :(得分:2)

首先,您无法使用#快捷方式创建具有此类值的id,您必须做很多事情:

%div{:id => "<%= id %>"}

默认情况下,Haml会转义属性,因此会产生类似的内容:

<div id='&lt;%= id %&gt;'></div>

这可能不是你想要的。您可以通过将:escape_attrs option设置为false来转换属性的转义。然后,这将产生所需的输出:

<div id='<%= id %>'></div>

请注意,此选项会影响文档中的所有属性。

另一种方法是使用另一组delimiters in your templates。例如,您可以使用{{...}}

_.templateSettings = {
  interpolate : /\{\{(.+?)\}\}/g
};

现在,Haml不会转义属性值。