Meteor Spacebars {{#each}}计数器和第一次/最后一次测试

时间:2014-11-11 21:40:25

标签: meteor spacebars

有没有办法用Meteor Spacebars实现以下逻辑?

伪代码,混合了Meteor和Django's forloop

{{#each jobs}}
    {{>jobItem }}
    {#if not forloop.last }}<hr>{{/if}}
{{/each}}

1 个答案:

答案 0 :(得分:2)

不幸的是{{each}}没有做索引。因此,您必须将更多信息传回项目,以获得您需要的信息。例如,这可以将索引作为另一个字段放入返回对象。

var returnArray = _.map(divisions, function(item, key) {
  return _.extend(item, {
    "index": key
  });
});

考虑到您只想要最后一个,您可能只想将一个属性附加到作业中的最后一个属性。创建一个只返回

之类的辅助函数
return _.extend(_.last(Jobs.find().fetch(), {"last": true})

然后你可以拥有{{#if last}}{{else}}<hr>{{/if}}。这样,所有没有价值的物品都会得到小时,而那个没有价值的物品会获得最后一个价值。

您可能也可以在CSS中处理它。

hr:last-of-type { display: none }

您可能需要仔细检查其语法。