ハンドルバーの魅力的なエンジンを使用したノード プロジェクトに取り組んでいます。テーブルで表す必要がある非常に大きなオブジェクトがあります。ユーザーは、表示する列を選択できます。
ユーザーが選択した列を保持する列と呼ばれる変数があります。
columns = ['name','email']
そして、私は大きなオブジェクトの配列を持っています
items = [{
name:'foo',
email:'foo@foo.com',
otherPropN:'other...'
}, ...]
これは、列名と電子メールのみを含むテーブルをレンダリングする最初の試みでした。
<table class="table">
<thead>
{{#each columns}}
<th>{{this}}</th>
{{/each}}
</thead>
<tbody>
{{#each items}}
{{#each ../columns}}
<td>{{*WHAT TO PUT HERE!*}}</td>
{{/each}}
{{/each}}
</tbody>
</table>
アイテムの範囲に戻る必要があるので、次のように言えます。item[column]
しかし、その方法がわかりません。
EJSでは、これが私がすることです。
<table class="table">
<thead>
<% columns.forEach(function(column){ %>
<th><%=column%></th>
<% }); %>
</thead>
<tbody>
<% item.forEach(function(item){
columns.forEach(function(column){ %>
<td><%=item[column]%></td>
<% });
}); %>
</tbody>
</table>
ありがとう!