9

MeteorでLeaderboardの例を試していますが、クリックイベントの設定で何か問題があります。この例では、3つのボタンがあります。1つは列で並べ替えを変更するためのもので、もう1つは全員に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を更新しますが、ボタンをクリックしても動作しません。だから私は何が欠けていますか?

ありがとう

4

1 に答える 1

15

セレクターを含むイベントマップは、テンプレートの最上位要素と一致しません。これは、できるだけ早く修正するものです。

ただし、簡単な回避策があります。ソーターテンプレートをでラップします<div>

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

于 2012-04-11T20:08:34.457 に答える