如何在#each循环中插入带有数据的额外列?

时间:2014-03-16 19:46:36

标签: meteor handlebars.js each

我有以下模板:

<body>
  <table border="1px">
  {{> test}}
  <table>
</body>

<template name="test">
  {{#each items}}
  <tr>
        {{> test2}}
  </tr>
  {{/each}}
</template>

<template name="test2">
   <td>{{name}}</td><td>{{lastruntime}}</td><td>{{result}}</td><td>{{blaat}}</td>
</template>

以下客户端代码:

ScheduledTasks = new Meteor.Collection("scheduledTasks");

if (Meteor.isClient) {
  Template.test.items = function () {
    return ScheduledTasks.find({});
  }
};

现在 {{blaat}} 不是文档的一部分,但需要根据单个行中的数据填充数据。我尝试了很多,但无法找到如何访问/填充 {{blaat}} 标记。任何人吗?

1 个答案:

答案 0 :(得分:2)

您可以使用map通过添加blaat属性来修改每个文档。然后,您可以返回已修改文档的数组,而不是返回游标。例如:

Template.test.items = function() {
  return ScheduledTasks.find().map(function(item) {
    item.blaat = item.name + item.result;
    return item;
  });
};

blaat属性随后可用于您的模板,就像nameresult一样。

或者,如果您认为blaat属性应该始终,只要您检索计划任务,那么您可以考虑在集合中添加transofrm