2014-07-07 90 views
0

我目前使用QuickBase數據庫嘗試使用moustache.js進行自定義報告工作,當我尋找到moustach.js我注意到你需要有你的數據以JSON格式,所以我用( (http://pastie.org/9364908#16)將我的數據導入JSON,然後出現如(http://pastie.org/9364674#18填充Moustache.js模板

我的問題是當我爲此創建模板時, ?我看過的小鬍子模板實例,但所有我能找到的是它正在與供應權,然後以JSON格式製作的數據使用,但是當我打這個電話,所以我將如何去設置,我的數據我需要的是供給。?

+0

數據在一個變種的模板相同的被它的硬編碼或通過AJAX虹吸在。 – dandavis

回答

0

當鬍子JS模板(或一般JS模板)的工作,你不需要有模板是在相同的位置從Ajax調用返回的數據。但是,您需要將數據存儲在模板的渲染函數範圍內的var中。我假設你希望在一組數據中使用ajax,將其解析爲JSON,然後在某個時刻將該JSON數據呈現給DOM。因此,要回答你的問題:

1)是否模板必須包含在JSON數據是頁? 不一定,但您需要能夠從一個位置訪問這兩個部分(例如,您可以在模板和數據中都使用ajax,然後將它們放在一起;或者,您可以將模板作爲腳本存儲在DOM中[建議的方式,除非你使用的是AMD],然後當你的ajax調用完成時渲染模板)。

主要要注意的是,你需要有你的模板,並在同一範圍內的數據既是一個參考。

2)設置模板/數據?

這可以通過使用Ajax的成功回調來完成:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

那麼成功,你可以有函數調用呈現在你的模板,或者只是設置一個本地變量與數據和處理模板渲染後。

3)使該模板通常

var template = $('#template').html(), //script tage with id="template" from your dom 
    data = jsonData, //saved somewhere in a local scoped var .. maybe from an ajax call 
    rendered = Mustache.render(template, data), 
    target = $("#target"); //where the template renders to 

$('#target').html(rendered); 

4)呈現通過$就

$.ajax("/api/data", function(data){ 
    var jsonData = $.parseJSON(data), 
     template = $('#template').html(), //script tage with id="template" from your dom 
     rendered = Mustache.render(template, jsonData), 
     target = $("#target"); //where the template renders to 

}); 
+0

非常感謝!這正是我需要的信息! – ALearningExperince