把手不呈现JSON上下文数据,获取空模板

时间:2013-08-07 15:41:53

标签: javascript handlebars.js

我遇到一个奇怪的问题,即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>

非常感谢任何见解。如果我在有人看到之前搞清楚了,我一定会发布更新。

1 个答案:

答案 0 :(得分:0)

您应该使用this

{{#each downloads}}
<div class="download-item">
    <h3>{{this.pagetitle}}</h3>
    <p>{{this.description}}</p>
</div>
{{/each}}