3

我在搞乱流星排行榜的例子。假设我想在把手#each 循环中显示项目的索引:

{{#each players}}
  {{> player}}
{{/each}}

<template name="player">
  <div class="player {{selected}}">
    <span class="index">{{index}}</span>
    <span class="name">{{name}}</span>
    <span class="score">{{score}}</span>
  </div>
</template>

通常人们会为此编写一个车把助手,但我无法弄清楚如何让它与 Meteor 集合一起使用。

如何做到这一点?谢谢你。

4

4 回答 4

4

Blaze 现在有一个@index 功能:

{{#each players}}
  {{> player index=@index}}
{{/each}}

<template name="player">
  <div class="player {{selected}}">
    <span class="index">{{index}}</span>
    <span class="name">{{name}}</span>
    <span class="score">{{score}}</span>
  </div>
</template>

Template.player.helpers({
  index() {
    var data = Template.currentData();
    if( data ) {
      return data.index;
    }
  }
});
于 2016-02-28T18:01:13.193 回答
0

为这个问题添加一个答案。我不得不花几个小时弄清楚

在您的客户中

Template.player.data = function(data){

if(type){

return Template[ 'player' ](data);

}

}

在您的模板中

{{#each players}}

{{data this}}

{{/each}}

这将无缝工作。

于 2013-01-12T10:44:12.253 回答
0

这就是我解决这个问题的方法——不是一个完美的解决方案——通过使用 Mongo 通常创建增加价值的索引这一事实。

Template.item.index = function() {
    return Items.find().count() - Items.find({_id: {$lte: this._id}}).count() + 1
}

然后我在模板中使用它,如下所示:{{index}}

希望这可以帮助!

于 2013-09-13T05:03:03.330 回答
0

如果您只是想显示 mongo 生成的 id,只需使用 _id

 <span class="id">{{_id}}</span>

它将显示集合中的唯一索引 ID。不会很漂亮

我可能误解了你的问题。对不起,如果我这样做了。

于 2012-04-16T00:59:36.493 回答