首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails + Haml:如何取消转义标记参数?

Rails + Haml:如何取消转义标记参数?
EN

Stack Overflow用户
提问于 2010-08-22 13:32:54
回答 3查看 1.9K关注 0票数 5

我试着在源码中完成以下内容:

代码语言:javascript
运行
复制
<div id="box<%=id%>"></div>

而不会逃脱哈默尔的任何征兆。

代码语言:javascript
运行
复制
%div{ :id => "box_<%=id%>" }

产生

代码语言:javascript
运行
复制
<div id='box_&lt;%=id%&gt;'></div>

现在,我能用Haml做到这一点的唯一方法是使用HTML和硬编码:plain,而不使用任何View Helper。我怎么才能修复它呢?

我之所以需要它,是因为由于第三方语法约定,我不得不遵循这个约定:JavaScript Micro-Templating

参考资料:

Haml reference

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-22 13:41:54

您说您正在用Haml编写代码,但是括号中显示的是Erb。

  • Step 1。尝试正常的Ruby插值:

% }

  • Step { :id => "box_#{id}“div 2。没有第二步。

更新:当我写这个答案的时候,我以前还没有使用过JS模板框架。我很抱歉没有理解为什么这是必要的。

票数 4
EN

Stack Overflow用户

发布于 2011-01-04 05:25:48

基本上,只要不对这一条语句使用HAML即可。例如,假设您现在正在HAML中执行类似的操作:

代码语言:javascript
运行
复制
%script#template(type="text/html")
    %div{ :id => "box_<%=id%>" }

取而代之的是:

代码语言:javascript
运行
复制
%script#template(type="text/html")
    <div id="box_<%=id%>"></div>

它会将脚本标记正确地解释为HAML,然后由于您没有使用任何%#等来开始下一行,它会将该行解释为纯文本并传递它。对我来说似乎很好,我有一个和你非常相似的案例。我做的唯一一件事就是在页面的head中使用以下Javascript语句将jQote (我用于Javascript模板的模板引擎)标记从%更改为$

代码语言:javascript
运行
复制
%script( type="text/javascript")
    $(function() { $.jqotetag( '$' ); });

这样,%符号就不会让Ruby解释器感到困惑。所以最后一个例子是:

代码语言:javascript
运行
复制
%script#template(type="text/html")
    <div id="box_<$=id$>"></div>

祝好运!

票数 2
EN

Stack Overflow用户

发布于 2014-02-09 09:08:18

http://haml.info/docs/yardoc/file.REFERENCE.html#unescaping_html

代码语言:javascript
运行
复制
! %div(id="box_<%= data.id %>")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3540310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档