2016-11-03 17 views
0

私は流星とjsを初めて使っていて、流星を使っていくつかのアプリを作ろうとしています。 今後の使用のために_idを取得したいと考えています。私はthis._idを使ってオブジェクトIDを取得する前に、今度は私はできません。ここでユートピアで選択項目_idを取得する方法

はhtmlです:ここでは

{{#each player in getPlayers}} 
    <div class="card test"> 
    <div class="content"> 
     <a class="header">{{player.name}}</a> 
    </div>    
    </div> 
{{/each}} 

はJSです:

Template.playerList.helpers({ 
    'getPlayers'(){ 
    var player = PlayerLists.find().fetch(); 
    return player; 
    } 
}); 

と私は_idをキャッチしようとする機能:

'click .test': function() { 
    event.preventDefault(); 
    var currentId = this._id; 
    currentPlayer = PlayerLists.findOne({_id:currentId}); 
    console.log(currentId); 
} 

PlayerListsは収集され、再生は文書です。選択したプレーヤーの_idにしようとしますが、プレーヤーをクリックするたびにcurrentIdは未定義と表示されます。

誰でも私を助けることができますか?どうもありがとう! 「この」おそらく、あなたはウィンドウオブジェクトを持って、PlayerListコレクションから_idないでところで

{{#each player in getPlayers}} 
    <div class="card test"> 
    <div class="content"> 
     <a class="header useThisEvent" data-id="{{_id}}>{{player.name}}</a> 
    </div>    
    </div> 
{{/each}} 

'click .useThisEvent': function() { 
event.preventDefault(); 
//there you have id of selected item. Its imporatant to use event.currentTarget 
var id = $(event.currentTarget).data('id') 
} 

//Try to simple you code: 
Template.playerList.helpers({ 
'getPlayers'(){ 
return PlayerLists.find().fetch(); 
} 
}); 

{{#each player in getPlayers}} i suggest to change for {{#each getPlayers}} 

答えて

0

私はシンプルなソリューションを使用しています。 Template.instance()またはTemplate.currentData()を使用してみてください。しかし、このメソッドは時々別のものを返すことがあります。

関連する問題