我正在使用PHP文件從數據庫中提取數據並將其作爲JSON返回。然後,我想使用JSON數據作爲Handlebars模板的上下文。我的問題是,我似乎無法讓Handlebars的「{{#each}}」助手使用PHP文件返回的JSON。使用Handlebars#每個助手在JSON中沒有鍵
這裏是返回的JSON的例子:
[
{
"id": "3",
"type": "Abseiling",
"title": "Abseiling Adventure",
"location": "Glenrock State Conservation Area",
"date": "2012-12-18 00:00:00",
"length": "2 hours",
"price": "50"
},
{
"id": "1",
"type": "Abseiling",
"title": null,
"location": "Glenrock State Conservation Area",
"date": "2013-02-10 00:00:00",
"length": "3 hours",
"price": "70"
}
]
這裏是我的把手模板:
{{#each}}
<p>{{location}}</p>
{{/each}}
我也有嘗試:
{{#each}}
<p>{{this.location}}</p>
{{/each}}
我懷疑爲爲什麼這不起作用是#each助手不能像我想要的那樣運行,而是必須像這樣調用:{{#每個東西}}。如果是這樣的話,有沒有簡單的方法來一鍵添加到JSON數據,以便它在這種形式:
something: [
{
...
},
{
...
}
]
如果我的懷疑是錯的,我怎麼能使用#each助手與JSON我目前提供作爲模板上下文?
UPDATE:找到了一個解決這個問題,我只是不得不模板調用從
jQuery(".events").html(Handlebars.templates['Events'](data));
改變
jQuery(".events").html(Handlebars.templates['Events']({events: data}));
這就意味着然後我可以使用{{#each事件}}。
你可以把你的**更新**下來,答案和接受的答案(但我認爲你需要等待24小時才能接受你自己的答案),可以幫助人們在未來的搜索類似的事情。把手需要在模板中通過名稱來引用事物,模板函數的對象參數基本上是一個小小的可移植的名稱空間,它允許您給「數據」命名。 –