MeteorJS – click.incrementfunction不工作(你的第一个meteor应用程序)

我正在通过“ 你的第一个meteor应用程序”这本书,而我被困在第8.3节“ 高级操作符”第二部分

基本上, click.incrementclick.decrement函数应该执行以下操作:

  • 点击后,玩家的名字(li元素)背景变成黄色
  • 当点击“给5分”或“拿5分”时,用户的积分增加/减less5。

但是,这是发生了什么事情:

  • 当我点击一个球员(李元素),它是突出显示黄色
  • 当我点击增量或减量button时,li元素被取消select,背景不再是黄色,并且点数没有变化。

任何帮助,将不胜感激。 这一定是我忽略的一个非常简单的事情,但是我无法弄清楚。

以下是相关的代码:

leaderboard.html:

 <head> <title>Leaderboard</title> </head> <body> <h1>The Leaderboard</h1> {{> leaderboard }} </body> <template name="leaderboard"> <ul> {{#each player}} <li class="player {{selectedClass}}">{{name}}: {{score}}</li> {{/each}} </ul> <input type="button" class="increment" value="Give 5 Points"> <input type="button" class="decrement" value="Take 5 Points"> </template> 

leaderboard.js:

 PlayersList = new Mongo.Collection('players'); console.log("Hello World from Meteor!"); if(Meteor.isClient){ Template.leaderboard.helpers({ 'player': function(){ return PlayersList.find(); }, 'selectedClass': function() { var playerId = this._id; var selectedPlayer = Session.get('selectedPlayer'); if (playerId == selectedPlayer) { return "selected"; } } }); Template.leaderboard.events({ 'click.player': function() { var playerId = this._id; Session.set('selectedPlayer', playerId); }, 'click.increment': function() { var selectedPlayer = Session.get('selectedPlayer'); PlayersList.update(selectedPlayer, {$inc: {score: 5} }); }, 'click.decrement': function() { var selectedPlayer = Session.get('selectedPlayer'); PlayersList.update(selectedPlayer, {$inc: {score: -5} }); } }); } 

leaderboard.css:

 .selected { background-color: yellow; } 

你的事件声明中需要一个空格:

 'click .player': function() { 

您的代码工作: http : //meteorpad.com/pad/WofZFR5vjrDck4YRK