2012-11-20 66 views
2

我建立一個小頁面這就要求使用jQuery的的getJSON的API,並接着會使用一個鬍子模板(至少是計劃)的數據。不過,我的JSON沒有節點根,並且無法使用適當的小鬍子機制來遍歷JSON響應數據。我知道這是完全錯誤的(僅在模板使用中,假設我實際上正確地傳遞數據和模板),但它確實有效。但如果我想要做的後續......我該怎麼做IT!?如何使鬍鬚模板和JSON沒有根節點

//start 
//file : daydreamer.mustache 

<h1>This title is only awesome when it's rendered once</h1> 
{{#}} //no root node attempt at recursive templating rendering 
    <option value="{{CountryIsoAlpha3Code}}">{{CountryName}}</option> 
{{/}} 

//end 

如果這個不清楚,請讓我知道,我知道一個貧窮的問題是眼睛痛。我會盡快編輯。謝謝。

回答

5

根據您在此應用程序/用例中控制的部分,您有兩種可能的修復方法:修改JSON數據以包含此根節點將根節點添加到您的數據上。

鬍子模板將需要得到修改這兩個解決方案如下:

{{#options}} 
    <option value="{{CountryIsoAlpha3Code}}">{{CountryName}}</option> 
{{/options}} 

現在你可以直接包裹在你的服務器到底上的數據,然後getJSON電話會像這對於第二種解決方案(對於第一種解決方案,用data代替{options: data}包裝)。假設你無法控制服務器端,因爲該API是由其他人修復/強制的:

$.getJSON("jsonresponse.jsonp", function(data) { 
    var tpl = tmpl.mustache, 
     html = ''; 

    html = mustache.render(tpl, {options: data}); 
} 
+0

工作就像一個魅力。非常感謝你。我很樂意給你這個額外的+25!我也想我會改變我的答案,以更好地反映主要問題 –