Search code examples
javascriptmongodbmeteormeteor-helper

Session variable is undefined in Meteor


While I was trying to execute some programs on 'sessions'. I have created a project named 'leaderboard'.

Executing this leaderboard shows some 'undefined' console log. Any idea why?

Here is my code:

PlayerList = new Mongo.Collection('players');
if (Meteor.isClient) {
    Template.leaderboard.helpers({
        'player': function() {
            return PlayerList.find()
        },

    });
    Template.leaderboard.events({
        'click .player': function() {
            var playerId = this._id;
            Session.set('selectedPalyer', playerId);
            var selectedPlayer = Session.get('selectedPlayer');
            console.log(selectedPlayer);
        }

    });
}

<head>
    <title>Leaderboard</title>
</head>
<body>
    <h1>Leaderboard</h1>
    {{> leaderboard}}
</body>

<template name="leaderboard">
     <ul>
         {{#each player}}
         <li class="player">{{name}}: {{score}}</li>
         {{/each}}
     </ul> 
</template>

Solution

  • You have a typo in your Session key. Just replace Session.set('selectedPalyer', playerId); with Session.set('selectedPlayer', playerId); and you are ready to go:

    PlayerList = new Mongo.Collection('players');
    if (Meteor.isClient) {
        Template.leaderboard.helpers({
            'player': function () {
                return PlayerList.find();
            }
        });
        Template.leaderboard.events({
            'click .player': function () {
                var playerId = this._id;
                Session.set('selectedPlayer', playerId);
                var selectedPlayer = Session.get('selectedPlayer');
                console.log(selectedPlayer);
            }
        });
    }