2

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

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

额外的“%”转义了该变量的呈现,并用一个“%”呈现它,这是下划线模板库将拾取的。

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

#"<%= id %>"

这没有用。如何使用 HAML 完成相同的任务?

4

1 回答 1

2

首先,您不能使用#快捷方式来创建id具有这样的值的值,您必须做很长的路要走:

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

默认情况下,Haml 将转义属性,因此这将产生如下内容:

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

这可能不是你想要的。:escape_attrs您可以通过将选项设置为 false来关闭属性转义。这将产生所需的输出:

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

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

另一种方法是在您的模板中使用一组不同的分隔符。例如你可以使用{{...}}这个:

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

现在 Haml 不会转义属性值。

于 2012-09-03T18:16:21.823 回答