2013-06-18 106 views
1

我有2個數組。 一個與第二個與數據所需的表列scheme = ['username', 'email', 'created'];從2個陣列渲染表格

data = [{ username: "...", email: "...", created: '...', gender: '...' }, {...} ...];

我想呈現一個表是這樣的:

username  email  created 
...   ...  ... 
...   ...  ... 
...   ...  ... 
...   ...  ... 
...   ...  ... 
...   ...  ... 
...   ...  ... 
...   ...  ... 
...   ...  ... 

我使用的把手與節點明確。

+0

你嘗試過什麼碼? :) – summea

+3

聽起來不錯。讓我們知道怎麼回事! –

+1

爲什麼2個數組?你只需要一個,一個與數據。然後,您循環訪問數組並從那裏創建您的HTML。 – frenchie

回答

2

我做到了:)。關鍵是要使用手柄幫手。寫一個幫手非常簡單。所以這裏是我的:

var hbs = require('hbs'); 

hbs.registerHelper('getByKey', function(data,key) { 
    return data[key]; 
}); 

(不要忘了,im在nodejs中)。

所以之後我有幫助,並有數據陣列滿對象的,我知道我在這裏想要的屬性的名稱是結束代碼:

<h1>List data</h1> 

    <table class="table" border="1"> 
     <thead> 
      <tr> 
       <td><b>id</b></td> 
       {{#each scheme.listDisplay}} 
        <td><b>{{this}}</b></td> 
       {{/each}} 
      </tr> 
     </thead> 

     {{#each data}} 
     <tr> 
      <td> 
       {{id}} 
      </td> 

      {{#each ../scheme.listDisplay}} 
       <td>{{#getByKey ../data this}}{{/getByKey}}</td> 
      {{/each}} 

     </tr> 
     {{/each}} 
    </table> 
1

這應該適合你。只要插入這個腳本,只要你想要你的表。

var header = ["Column 1", "Column 2", "Column 3"]; 
var content = [["blah", "blah", "blah"],["ha","ha","ha"]]; 

document.write("<tr>"); 
for (i=0;i<header.length;i++) { 
    document.write("<td>"+header[i]+"</td>"); 
} 
document.write("</tr>"); 

for (i=0;i<content.length;i++) { 
    document.write("<tr>"); 
    for (f=0;f<content.length;i++) { 
     document.write("<td>"+content[i][f]+"</td>"); 
    } 
    document.write("</tr>"); 
} 
+0

這是okey,但我想使用把手。 :) – Aleksandrenko