我是Meteor的新手,我试图在表中显示某个对象的某些结果,值和行根据结果而改变,格式如下:
obj={10: [“1”, “3”, “0”, “0”]
11: [“1”, “7”, “0”, “0”]
12: [“1”, “12”, “0”, “0”]}
所以数据是动态的但不是集合,数组的每个元素都是表的单元格,从上面的示例中,我需要一个3行5列的表
到目前为止,我所指向的内容是:
aslagle:反应表
还可用于编写纯数组。对于我要在表格中显示的内容来说,这是正确的路径还是太复杂了,有什么建议吗?
答案 0 :(得分:1)
您可以使用ReactiveVar或ReatciveDict反应显示数据。首先,您需要使其变得可迭代。最好是在Template.onCreated函数中执行此操作。假设您的模板名称为“ myTable”:
Template.myTable.onCreated(function onMyTableCreated() {
const instance = this
instance.state = new ReactiveDict()
instance.state.set('entries', [])
instance.autorun(() => {
const obj = // ... however you get your object
const entries = Object.keys(obj).mapkey => ({
key:key,
value: obj[key]
}))
instance.state.set('entries', entries)
})
})
现在,您可以定义一个帮助程序,以正确的格式将您已处理的条目返回到模板:
Template.myTable.helpers({
entries() {
return Template.instance().state.get('entries')
}
})
现在,您可以轻松地遍历条目及其值:
<template name="myTable">
<table>
<thead>
<tr>
{{#each entries}}
<th>{{this.key}}</th>
{{/each}}
</tr>
</thead>
<tbody>
{{#each entries}}
<tr>
<!-- this.value is the array, such as [“1”, “3”, “0”, “0”] -->
{{#each this.value}}
<td>{{this}}</td>
{{/each}}
</tr>
{{/each}}
</tbody>
</table>
</template>
这里值得带走的东西