2016-07-21 8 views
0

Ich habe einen Meteor Vorlage:Wie behandelt man Klickereignisse in Meteor?

<template name="createDefaultTemplate"> 

    <div class="panel panel-default"> 
     <div class="panel-heading"> 
      <h4 class="panel-title"> Select Role of router</h4> 
     </div> 

     <div class="btn-group btn-group-justified" id="routerType"> 
      <a href="{{pathFor route="edgeRouterAvailablePGTemplate"}}" id= "edge" class="btn btn-default">Edge Router</a> 
      <a href="{{pathFor route="aggrRouterAvailablePGTemplate"}}" id= "agg" class="btn btn-default">Aggr. Router</a> 
      <a href="{{pathFor route="coreRouterAvailablePGTemplate"}}" id= "core" class="btn btn-default">Core Router</a> 
     </div> 
    </div> 

Ich versuche, den Wert der Schaltfläche geklickt zu ziehen, so dass ich eine neue Route auslösen kann. Leider kann ich es nicht richtig machen. Ich habe das unten versucht, aber es holt den Wert von der Taste.

Template.createDefaultTemplate.events({ 
    'click #agg ': function(event){ 
     console.log(event); 
     var selectValue = $(event.target).val(); 
     console.log(selectValue + "is selected - message logged in events"); 
     Session.set("selectedSchema",selectValue); 
     console.log(Session.get("selectedSchema")+ " is session variable set - message logged in events"); 
    } 
}); 

Ich habe auch so etwas wie versucht:

'click' : function(event) 
'click a .btn .btn-default' : function(event) 

Aber keiner von ihnen scheinen keine Wirkung zu haben. Ich kann Console.log (Ereignis) lesen, aber ich kann den Wert nach dem Klicken nicht extrahieren.

Wie behebe ich das?

Antwort

1

Wenn ich Ihre Frage sehr gut verstehe. Sie müssen einen Wert für jeden der Schaltflächen erhalten. Sie können das erreichen, indem das Datenattribut von HTML-Elemente mit

<div class="btn-group btn-group-justified" id="routerType"> 
     <a href="{{pathFor route="edgeRouterAvailablePGTemplate"}}" id= "edge" data-value="6" class="btn btn-default">Edge Router</a> 
     <a href="{{pathFor route="aggrRouterAvailablePGTemplate"}}" id= "agg" data-value="65" class="btn btn-default">Aggr. Router</a> 
     <a href="{{pathFor route="coreRouterAvailablePGTemplate"}}" id= "core" class="btn btn-default">Core Router</a> 
    </div> 

Um den Wert auf einer Vorlage Schaltfläche klicken Ereignis zurück Sie dies einfach tun können.

var selectValue = $(event.target).data('value') 
0

Ich konnte nicht verstehen, was Sie Ich glaube, Sie auf die Schaltfläche klicken, um andere Vorlage Route versuchen zu erreichen, sondern als Code angezeigt wird versuchen. Wenn das ist, was Sie wollen, dann warum Sie nicht nur die Adresse Routing halten in der ‚href‘ Eigentum ‚a‘ tag

<a href="/edge" id= "edge" class="btn btn-default">Edge Router</a> 
<a href="/aggr" id= "agg" class="btn btn-default">Aggr. Router</a> 
<a href="/core" id= "core" class="btn btn-default">Core Router</a> 

Ich glaube, Sie bereits Routen für die Tasten gemacht haben geklickt haben so wenig Änderungen machen von Ihre Router nach hrefs.

ich denke, es sollte

arbeiten

Wenn Sie immer noch den Wert des href auf die Schaltfläche klicken zugreifen möchten Sie etwas tun können:

"click .btn":function(e,t){ 
    console.log($(e.target).attr("href")) 
} 

Dank