访问Handlebars/Blaze中的收藏索引#每个循环
我正在搞一个Meteor Leaderboard示例。比方说,我想显示一个把手内的项目的索引#each循环:访问Handlebars/Blaze中的收藏索引#每个循环
{{#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>
通常一个会写这样的车把帮手,但我有麻烦搞清楚如何得到它的一个工作流星收集。
如何做到这一点?谢谢。
如果你只是想显示蒙戈生成的ID只使用_id
<span class="id">{{_id}}</span>
它会显示在集合中的唯一索引ID。它不会很漂亮。
我可能误解了你的问题。对不起,如果我有。
刚刚发现这个!我想要索引,所以它会在播放器旁边显示0,1,2等。基本上是玩家在收藏中的位置。 – kmurph79 2012-04-22 23:59:01
为这个问题添加一个答案。我不得不把一些时间想出来的
在您的客户端
Template.player.data = function(data){
if(type){
return Template[ 'player' ](data);
}
}
在模板
{{#each players}}
{{data this}}
{{/each}}
这将无缝工作。
我得到一个类型未定义的错误,在你的例子中它代表了什么? – Blaise 2014-01-28 17:56:52
下面是我如何解决这个问题 - 而不是一个完美的解决方案 - 通过使用Mongo通常创建的增加值的索引这一事实。
Template.item.index = function() {
return Items.find().count() - Items.find({_id: {$lte: this._id}}).count() + 1
}
然后我用这个模板中像这样: {{指数}}
希望这有助于!
现在有在大火的@index特点:
{{#each players}}
{{> player [email protected]}}
{{/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;
}
}
});
你真的尝试车把助手的方法呢? [这段代码](https://gist.github.com/1371586)为我工作。 – zwippie 2012-04-13 13:16:30
@zwip谢谢你一堆。我曾尝试过,但使用不同的帮手。 – kmurph79 2012-04-15 03:25:25