2013-06-18 5 views
1

У меня есть 2 массива. One с разыскиваемых столбцов таблицы 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 in 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

Смежные вопросы