2016-05-19 45 views
0

我想顯示JSON數據,但我有這個錯誤。任何人都可以幫助我嗎?如何將JSON數據導入到我的ejs模板中?

錯誤 - >意外的標記;在 「/home/ubuntu/workspace/project_guest_book/views/pages/posts.ej

的代碼,造成誤差小於:不希望

<% var post = require(__dirname +"/userPosts.json") 
     var result= %> 
      <table> 
      <% for (var i=0; i<post.length; i++){ 
       result += %> 
       <tr> 
        <th><% post[i].Name+ %></th> 
        <td><% post[i].Post %></td> 
       </tr> 
      <% } %> 
      <table> 
+1

你不能輸出HTML *爲*這樣的一個變量,你最終是什麼'VAR的結果='沒有給定的值,這是一個語法錯誤。 – adeneo

+0

但即使我提供了一個值,我仍然有同樣的錯誤! – Learner

回答

1

EJS是使用你的方式正在嘗試使用它。

想想EJS模板與嵌入的JavaScript來編譯,以能夠提供所需的數據和它給你回最終的HTML功能標記。

因此,您不必擔心將中間標記存儲在html片段的變量或串聯中。

結帳在這個fiddle實現:

<script id="template" type="text/html"> 
    <table> 
    <% for (var i=0; i< posts.length; i++){ %> 
     <tr> 
     <th><%= posts[i].Name %></th> 
     <td><%= posts[i].Post %></td> 
     </tr> 
    <% } %> 
    <table> 
</script> 

-

// This can be loaded from an external file: 
var posts = [{ 
    Name: "Post1", Post: "Lorem ipsum dolor sit amet" 
}, { 
    Name: "Post2", Post: "Lorem ipsum consecteuter adpiscing elit" 
}] 

var compiledTemplate = ejs.compile(document.getElementById('template').innerText) 

console.log(compiledTemplate({ posts: posts })) 
+0

謝謝,代碼清晰。現在很容易理解我做錯了什麼。 – Learner