我遇到一个奇怪的问题,即Handlebars正在正确编译我的模板,但是当传递上下文数据时,html中的结果字段是空白的。我已经确认我的JSON数据实际上是一个javascript对象而不是字符串。如果在其他地方得到回答,我表示歉意。我看到很多关于JSON字符串需要成为实际对象的答案,但正如我所说,情况并非如此。
模板:
<script type="text/x-handlebars-template" id="items-template">
{{#each downloads}}
<div class="download-item">
<h3>{{pagetitle}}</h3>
<p>{{description}}</p>
</div>
{{/each}}
</script>
JS:
var source = $("#items-template").html();
var template = Handlebars.compile( $.trim(source) );
var html = template({
downloads:[
{pagetitle:'title', description:'the description'},
{pagetitle:'title', description:'the description'},
{pagetitle:'title', description:'the description'}
]
});
html
(仅一个空白项目)的结果:
<div class="download-item">
<h3></h3>
<p></p>
</div>
非常感谢任何见解。如果我在有人看到之前搞清楚了,我一定会发布更新。
答案 0 :(得分:0)
您应该使用this
{{#each downloads}}
<div class="download-item">
<h3>{{this.pagetitle}}</h3>
<p>{{this.description}}</p>
</div>
{{/each}}