2015-11-03 64 views
0

我的項目是這樣的:檢索EJS模板本地JSON文件數據

views/ 
    layout.ejs 
data/ 
    US-states.json 
public/ 
    index.html 

美國states.json看起來像這樣

{ 
    "DC": "District of Colombia", 
    "NY": "New York", 
    etc... 
} 

我怎麼能拉這個JSON數據到layout.ejs呈現像這樣的循環中的一些div?

<div>DC: District of Colombia</div> 
<div>NY: New York</div> 

我想是這樣的,但我無法使用Google的解決方案:

var data = JSON.parse('./../data/US-states.json') 
<% for(var p in data) {%> 
    <div>p: data[p]</div> 
<% } %> 
+0

你的模板不應該負責獲取文件! – Mathletics

+0

@Mathletics這個抽象的例子並不是100%反映我正在進行的項目;我需要將數據導入此組件,然後由主佈局文件進行此操作。無論如何,我並不熟悉EJS的最佳實踐。 –

+0

我認爲這是[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem),我同意@Eleanore的回答 – Mathletics

回答

3

你不應該從視圖中檢索數據。因此,當您在後端檢索到它時,您將表示數據的JavaScript對象(如您在問題中引用的那樣)傳遞給業務層的EJS。我不知道你用作後端框架。例如,當使用的NodeJS:

response.render("yourEJS", {data: yourObject}); 

然後,在你看來,你通過JavaScript遍歷對象:

<% for (aProperty in data) { %> 
    <div> <% aProperty %>: <%data[aProperty]%> </div> 
<% } %>