在流星中设置简单的事件

Setting simple events in meteor

本文关键字:事件 简单 设置 流星      更新时间:2023-09-26

我正在 Meteor 中尝试排行榜的示例,但我在设置点击事件时做错了。在此示例中,我有三个按钮,一个用于更改按列排序,另一个用于为每个人添加 5 个奖励积分。

这是 html:

    <div id="outer">
    {{> sorter}}
    {{> leaderboard}}
  </div>
   <template name="sorter">
   <span>Sorted by {{sortedBy}}</span>
   {{#if sortByName}}
    <input type="button" id="sortScore" value="sort by score" />
  {{else}}
    <input type="button" id="sortName" value="sort by name" />
  {{/if}}
    <input type="button" class="incAll" value="5 bonus points to all" />
</template>

这是js:

Template.sorter.events = {
'click #sortName': function(){
    Session.set('orderby', 'name');
},
'click #sortScore': function(){
    Session.set('orderby', 'score');
},
'click input.incAll': function(){
  Players.find().forEach(function(player){
      Players.update(player._id, {$inc: {score: 5}});
  });
}

}

调用 Session.set('orderby', 'name'); 在控制台中可以相应地更新 html,但单击按钮不会。那么我错过了什么?

谢谢

带有选择器的事件地图与模板中的顶级元素不匹配。 这是我们将尽快修复的问题。

不过,有一个简单的解决方法。 将您的分拣机模板包装在<div>中。

http://docs.meteor.com/#eventmaps