JSRender/JSView 当我使用 for 循环时重复所有模板
JSRender/JSView repeat all template when I use for loop
我有一个格式如下的数组:
{[
{ title : "", artist : "" },
{ title : "", artist : "" },
{ title : "", artist : "" },
{ title : "", artist : "" }
]}
当我尝试打印数据时,我得到了 n 次完整模板(Json 数据长度)。我有:
var list = new Array();
list.push({ title : **data**, artist : **data** });
var songsTemplate = $.templates("#topSongsTemplate");
var html = songsTemplate.render(list);
$("#topSongs").html(html);
我只想重复我的模板的for。但是我一直在 div 中重复获得完整的模板。我错过了什么?:
<script type="text/x-jsrender" id="topSongsTemplate">
<div class="col-md-6">
<i class="fa fa-trophy"></i> <span data-i18n="search.top_tracks">Top 20 Tracks</span>
<div class="separator hr-line-dashed m-t-xs"></div>
<ol>
{{for ~root }}
<li>{{>title}} - <small>{{>artist}}</small></li>
{{/for}}
</ol>
</div>
</script>
要在没有迭代的情况下进行渲染,您可以这样写:
var html = songsTemplate.render(list, true);
请参阅将数组传递给 render(),但不进行迭代。this documentation topic。。
顺便说一句,那么你同样可以写 {{for}}
或 {{for #data}}
- 虽然 {{for ~root}}
也可以。
另请参阅 的类似问题。
我有一个格式如下的数组:
{[
{ title : "", artist : "" },
{ title : "", artist : "" },
{ title : "", artist : "" },
{ title : "", artist : "" }
]}
当我尝试打印数据时,我得到了 n 次完整模板(Json 数据长度)。我有:
var list = new Array();
list.push({ title : **data**, artist : **data** });
var songsTemplate = $.templates("#topSongsTemplate");
var html = songsTemplate.render(list);
$("#topSongs").html(html);
我只想重复我的模板的for。但是我一直在 div 中重复获得完整的模板。我错过了什么?:
<script type="text/x-jsrender" id="topSongsTemplate">
<div class="col-md-6">
<i class="fa fa-trophy"></i> <span data-i18n="search.top_tracks">Top 20 Tracks</span>
<div class="separator hr-line-dashed m-t-xs"></div>
<ol>
{{for ~root }}
<li>{{>title}} - <small>{{>artist}}</small></li>
{{/for}}
</ol>
</div>
</script>
要在没有迭代的情况下进行渲染,您可以这样写:
var html = songsTemplate.render(list, true);
请参阅将数组传递给 render(),但不进行迭代。this documentation topic。。
顺便说一句,那么你同样可以写 {{for}}
或 {{for #data}}
- 虽然 {{for ~root}}
也可以。
另请参阅