MeteorJS – click.incrementfunction不工作(你的第一个meteor应用程序)
我正在通过“ 你的第一个meteor应用程序”这本书,而我被困在第8.3节“ 高级操作符”第二部分
基本上, click.increment
和click.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