Node.js 方形支架阵列通道和把手模板
我正在做一个节点项目,有一个诱人的车把引擎。我需要在表中表示一个非常大的对象。用户可以选择要查看的列 我有一个名为columns的变量,它保存用户选择的列,我们将假装它看起来像Node.js 方形支架阵列通道和把手模板,node.js,handlebars.js,Node.js,Handlebars.js,我正在做一个节点项目,有一个诱人的车把引擎。我需要在表中表示一个非常大的对象。用户可以选择要查看的列 我有一个名为columns的变量,它保存用户选择的列,我们将假装它看起来像 columns = ['name','email'] 我有一个大的物体阵列 items = [{ name:'foo', email:'foo@foo.com', otherPropN:'other...' }, ...] 这是我第一次尝试呈现只包含列名称和电子邮件的表 <t
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>
谢谢 好吧,我想我现在明白了。
我将创建两个单独的模板对象—整个表和一个“行”模板。然后,您必须执行一点javascript逻辑,使每一行模板都传递相应的模型。立即想到两种可能性:
Handlebars.registerHelper('property', function(o, k) {
return o[k];
});
然后你可以说:
<td>{{property ../this this}}</td>
然后将items\u mangled
作为items:items\u mangled
处理到模板函数,您的模板将具有:
{{#each items}}
<tr>
{{#each this}}
<td>{{this}}</td>
{{/each}}
</tr>
{{/each}}
{{#每个项目}
{{{#每个这个}
{{this}}
{{/每个}}
{{/每个}}
基本上,将数组和对象数组转换为JavaScript中的单个数组,这样手柄就可以处理它最喜欢的东西(数组)。Handlebar更倾向于在模板之外完成大部分逻辑演示:我不太清楚您的数据结构。请再详细说明一下。我不太明白。这两个对象是什么样子的?我已经详细阐述了一个问题:我是否可以为节点注册一个帮助器?在使用模板之前,只需调用
handlebar.registerHelper(…)
。我可能会把它们都放在一个handlebar\u helpers.js
文件中,然后在拉入handlebar后立即运行它。
// Or the nested for-loop equivalent
var items_mangled = items.map(function(item) {
return columns.map(function(column) {
return item[column];
});
});
{{#each items}}
<tr>
{{#each this}}
<td>{{this}}</td>
{{/each}}
</tr>
{{/each}}