1

私は2つの配列を持っています。必要なテーブルの列を持つ 1 つscheme = ['username', 'email', 'created']; 、データを持つ 2 つ目:

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

次のようなテーブルをレンダリングしたい:

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

ノードでエクスプレス付きのハンドルバーを使用しています。

4

2 に答える 2

2

やったよ :)。重要なのは、ハンドルバー ヘルパーを使用することでした。ヘルパーを書くのはとても簡単です。だからここに私のものがあります:

var hbs = require('hbs');

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

(忘れないでください、私は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>
于 2013-06-18T23:05:14.740 に答える
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>");
}
于 2013-06-18T19:51:56.570 に答える