2013-08-07 85 views
1

我有一個奇怪的問題,其中Handlebars正確編譯我的模板,但是當傳遞上下文數據時,html中的結果字段爲空。我已經確認我的JSON數據實際上是一個JavaScript對象而不是字符串。如果在別處回答了這個問題,我很抱歉。我看到很多關於JSON字符串需要成爲實際對象的答案,但正如我所說的,並非如此。把手不呈現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

您應該使用this

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

我覺得有點愚蠢,但我發現我的問題。我正在嘗試將這些把手作爲舊網站頁面翻新的一部分。它使用modx進化CMS。我不能在dom的腳本標籤中使用句柄模板,cms在解釋句柄之前解析出{{}},即使有機會處理它們。我的解決方案是將模板從CMS外部加載到外部。我會將你的答案標記爲正確的,儘管我應該使用'this'。謝謝 –