1

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

任何见解将不胜感激。如果我在有人看到之前弄清楚了,我一定会发布更新。

4

1 回答 1

0

你应该使用this

{{#each downloads}}
<div class="download-item">
    <h3>{{this.pagetitle}}</h3>
    <p>{{this.description}}</p>
</div>
{{/each}}
于 2013-08-07T15:46:03.997 回答