Joe*_*oel 26 each backbone.js underscore.js
我在这里做错了但我看不到它!我试图在下划线模板中循环一个数组.它不起作用,所以我错过了一些东西,这是我的代码,我的模板工作正常,否则,它只是_.each的东西,它们正在喋喋不休:
<script type="text/template" id="PageContent">
<div class="col2">
<@ _.each([0,1,2,3,4], function(i) { @> <p><@ i @></p> <@ }); @>
</div>
</script>
Run Code Online (Sandbox Code Playgroud)
我也做了一些像这样的模板设置:
_.templateSettings = {
interpolate: /\<\@(.+?)\@\>/gim
};
Run Code Online (Sandbox Code Playgroud)
mjt*_*tti 64
因为您只在自定义模板设置中定义了插值正则表达式,所以下划线不知道何时计算表达式.定义自定义模板设置时,需要定义和区分插值和评估.从下划线template()文档:
定义插值正则表达式和(可选)计算正则表达式以分别匹配应插入和计算的表达式.如果未提供评估正则表达式,则模板将仅能够插值.
在标准(无自定义设置)模板中,差异是评估:<% %>和值插值:<%= %>.
因此,例如,上面的模板应该是(使用标准模板设置):
<% _.each([0,1,2,3,4], function(i) { %> <p><%= i %></p> <% }); %>
Run Code Online (Sandbox Code Playgroud)
如果要继续使用自定义设置,还需要在_.templateSettings中定义评估正则表达式.根据您的问题和评论,例如:
_.templateSettings = {
interpolate: /\<\@\=(.+?)\@\>/gim,
evaluate: /\<\@(.+?)\@\>/gim
};
Run Code Online (Sandbox Code Playgroud)
然后更新您的模板以使用围绕代码块的评估表单和围绕值的插值形式,如下所示:
<script type="text/template" id="pageContent">
<div class="col2">
<@ _.each([0,1,2,3,4], function(i) { @> <p><@= i @></p> <@ }); @>
</div>
</script>
Run Code Online (Sandbox Code Playgroud)
来源:http://documentcloud.github.com/underscore/#template
| 归档时间: |
|
| 查看次数: |
43489 次 |
| 最近记录: |