2012-04-12 66 views
3

我正在搞一個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> 

通常一個會寫這樣的車把幫手,但我有麻煩搞清楚如何得到它的一個工作流星收集。

如何做到這一點?謝謝。

+1

你真的嘗試車把助手的方法呢? [這段代碼](https://gist.github.com/1371586)爲我工作。 – zwippie 2012-04-13 13:16:30

+0

@zwip謝謝你一堆。我曾嘗試過,但使用不同的幫手。 – kmurph79 2012-04-15 03:25:25

回答

0

如果你只是想顯示蒙戈生成的ID只使用_id

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

它會顯示在集合中的唯一索引ID。它不會很漂亮。

我可能誤解了你的問題。對不起,如果我有。

+0

剛剛發現這個!我想要索引,所以它會在播放器旁邊顯示0,1,2等。基本上是玩家在收藏中的位置。 – kmurph79 2012-04-22 23:59:01

0

爲這個問題添加一個答案。我不得不把一些時間想出來的

在您的客戶端

Template.player.data = function(data){

if(type){

return Template[ 'player' ](data);

}

}

在模板

{{#each players}}

{{data this}}

{{/each}}

這將無縫工作。

+0

我得到一個類型未定義的錯誤,在你的例子中它代表了什麼? – Blaise 2014-01-28 17:56:52

0

下面是我如何解決這個問題 - 而不是一個完美的解決方案 - 通過使用Mongo通常創建的增加值的索引這一事實。

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

然後我用這個模板中像這樣: {{指數}}

希望這有助於!

2

現在有在大火的@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; 
    } 
    } 
});