我正在使用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/<%= id %>'>My Resource</a>
根据HAML Reference'!'运算符可用于取消转义字符串,但不能用于HTML属性。
此外,我使用明文来渲染锚标记,但由于锚标记是此特定视图的根,因此我失去了使用HAML的所有好处。
任何帮助?
更新
我没有提到,但我正在使用LiveReload来实际观察我的文件系统并运行haml编译器,LiveReload中有一个设置来禁用标记属性中的HTML转义。 &LT;头部打击&gt;如果其他人在LiveReload之外遇到此问题,您还可以在配置HAML设置时将:escape_attrs
选项设置为false。
答案 0 :(得分:3)
您可以使用HAML配置中的escape_attrs
选项将HAML配置为不转义标记属性。请参阅HAML Options。
答案 1 :(得分:0)
您可以尝试使用html_safe,它是String对象上的一种方法。这将转义变量语句中的html字符(例如&lt;例如),并将保留完整的下划线以在运行时进行评估:
%a{:href => "myresources/<% id %>".html_safe} My Resource
时找到