Backbone.js 带下划线模板变量的Haml插值
我试图在haml模板中输出下划线模板变量,但我没有任何运气 HTML没有被转义,因此我似乎无法理解下划线变量没有呈现的原因 HAML-完整模板Backbone.js 带下划线模板变量的Haml插值,backbone.js,haml,underscore.js,Backbone.js,Haml,Underscore.js,我试图在haml模板中输出下划线模板变量,但我没有任何运气 HTML没有被转义,因此我似乎无法理解下划线变量没有呈现的原因 HAML-完整模板 %script{:type => "text/template", :id => "user_list_template"} %h4 Users #test %table.table.table-bordered %thead %tr %th # %th Name
%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>
来源
%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>
9
塔科霍尔
塔科赫尔
模板的Console.log
%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>
用户
#
名称
昵称
{{{}.each(用户,函数(用户){}
{{=user.get('id')}
{{=user.get('name')}
{{=user.get('昵称')}
{{ }); }}
我已经通读了之前提出的问题,但无法将其付诸实施。有什么想法吗
模板的console.log这与其说是一种解决方案,不如说是一种变通方法,但另一种方法是对下划线模板使用不同的语法(不涉及
)。如果你看:
您会发现,它们提供了一个Django/Mustache样式模板语法的替代示例:
如果您不喜欢ERB样式的分隔符,您可以更改
下划线的模板设置,以使用不同的符号来设置
内插代码。定义插值正则表达式以匹配表达式
这应该是逐字插入的,一个要匹配的转义正则表达式
应在HTML转义后插入的表达式,以及
计算正则表达式以匹配应在不使用
插入到结果字符串中。您可以定义或省略任何
三者的结合。例如,执行Mustache.js样式
模板:
当然,如果您正在考虑寻找一个更强大的模板系统,那么放弃
\uuu.template
而使用胡须、把手或类似的模板系统肯定不会有什么坏处。但是,如果您对下划线感到满意,则\uuu.templateSettings.interpolate
将允许您在不使用
的情况下使用它,您可以说HTML没有被转义,但是在转义的地方使用href=“/%=user.get('昵称')%”“
。您是否按照链接中的建议将:escape\u attrs
选项设置为false?@matt-这是一个错误,我的错误。他们应该是实际的字符。有人知道如何解决@machineghost在1月17日23:55提到的{{}错误的代码块问题吗?或者车把就是答案?你曾经这样做过吗?%tbody{{{{}.each(用户,函数(用户){}%tr%td{{{=user.get('id')}}%td{{=user.get('name')}%td{=user.get('昵称')}%td%a.btn{:href=>“{{=user.get('昵称}}}}}}查看用户{{}}
未捕获的语法错误:意外标记)
不用担心(仅供参考,您也可以编辑您的答案,以“更漂亮”的格式添加类似信息)。至于错误,听起来好像它不喜欢你的模板;有没有可能粘贴到模板本身?我在我的OP中添加了完整的模板。另外,开始使用Require.js和handlebar或Mustache会更容易?我不清楚如何开始整合它们。