2012-04-11 15 views
9

Sto provando l'esempio di Leaderboard in Meteor, ma sto facendo qualcosa di sbagliato nell'impostazione dell'evento click. In questo esempio, ho tre pulsanti, uno per cambiare l'ordinamento per colonna, un altro per aggiungere 5 punti bonus a tutti.Impostazione eventi semplici in meteora

Ecco il codice 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> 

Ed ecco la 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}}); 
    }); 
} 

}

Calling Session.set ('orderby', 'nome'); nella console funziona e aggiorna l'html di conseguenza ma facendo clic sui pulsanti non lo fa. Quindi cosa mi sto perdendo?

Grazie

risposta

15

mappe evento con selettori non corrisponderanno elementi di alto livello in un modello. Questo è qualcosa che ripareremo al più presto.

Tuttavia, c'è una soluzione semplice. Avvolgi il tuo template sorter in un .

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

+8

Qualche idea se questo è stato già risolto? –

+4

Sì, è stato corretto (per gli altri che stanno guardando questa domanda) – PRB