HAML - >骨干模板,取消HTML参数

时间:2012-05-01 21:33:41

标签: ruby backbone.js haml

我正在使用HAML为Backbone.js应用生成模板。我需要能够将<%= blah %>作为html属性插入la:

%a{:href => "myresources/<% id %>"} My Resource

并输出

<a href='myresources/<%= id %>' >My Resource</a>

在html模板中。不幸的是,HAML逃脱了html参数,留下了

<a href='#myresources/&lt;%= id %&gt;'>My Resource</a>

根据HAML Reference'!'运算符可用于取消转义字符串,但不能用于HTML属性。

此外,我使用明文来渲染锚标记,但由于锚标记是此特定视图的根,因此我失去了使用HAML的所有好处。

任何帮助?

更新 我没有提到,但我正在使用LiveReload来实际观察我的文件系统并运行haml编译器,LiveReload中有一个设置来禁用标记属性中的HTML转义。 &LT;头部打击&gt;如果其他人在LiveReload之外遇到此问题,您还可以在配置HAML设置时将:escape_attrs选项设置为false。

2 个答案:

答案 0 :(得分:3)

您可以使用HAML配置中的escape_attrs选项将HAML配置为不转义标记属性。请参阅HAML Options

答案 1 :(得分:0)

您可以尝试使用html_safe,它是String对象上的一种方法。这将转义变量语句中的html字符(例如&lt;例如),并将保留完整的下划线以在运行时进行评估:

%a{:href => "myresources/<% id %>".html_safe} My Resource

回答Interpolate inside html attributes with Underscore.js

时找到