【发布时间】:2013-01-17 20:27:41
【问题描述】:
我试图在我的 haml 模板中输出一个下划线模板变量,但我没有任何运气。
HTML 没有被转义,所以我似乎无法弄清楚为什么下划线变量没有呈现。
HAML - 完整模板
%script{:type => "text/template", :id => "user_list_template"}
%h4 Users
#test
%table.table.table-bordered
%thead
%tr
%th #
%th Name
%th Nickname
%th
%tbody
{{ _.each( users, function(user) { }}
%tr
%td {{= user.get('id') }}
%td {{= user.get('name') }}
%td {{= user.get('nickname') }}
%td
%a.btn{:href => "{{= user.get('nickname') }}"}
View User
{{ }); }}
来源
<tr>
<td>9</td>
<td>TacoHell</td>
<td>TacoHelll</td>
<td>
<a class="btn" href="<%= user.get('nickname') %>">
View User
</a>
</td>
</tr>
模板的控制台日志
<h4>Users</h4>
<div id='test'></div>
<table class='table table-bordered'>
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Nickname</th>
<th></th>
</tr>
</thead>
<tbody>
{{ _.each( users, function(user) { }}
<tr>
<td>{{= user.get('id') }}</td>
<td>{{= user.get('name') }}</td>
<td>{{= user.get('nickname') }}</td>
<td>
<a class='btn' href="{{= user.get('nickname') }}">
View User
</a>
</td>
</tr>
{{ }); }}
</tbody>
</table>
我已经阅读了之前提出的问题,但无法让它发挥作用。有什么想法吗?
- Interpolating underscore.js template with HAML
- Rendering “<%%=” with HAML
- Interpolate inside html attributes with Underscore.js
编辑 1 添加完整模板
编辑 2 模板的console.log
【问题讨论】:
-
你说他们的 HTML 没有被转义,但随后有
href="/&lt;%= user.get('nickname') %&gt;"<和>被转义。您是否按照链接中的建议将:escape_attrs选项设置为 false? -
@matt - 这是一个错误,我的错误。它们应该是实际的字符。
-
有人知道如何解决代码块问题,@machineghost 在 1 月 17 日 23:55 提到的 {{}} 错误吗?还是把手是答案?
-
你有没有得到这个工作?
标签: backbone.js haml underscore.js