2016-06-10 12 views
0

Ich versuche, ein benutzerdefiniertes Ereignis, das ich auf meinem Meteor gemacht habe, von meinem Router-Controller ohne Erfolg aufzurufen. Dies ist der Fall, dass ich zu triggern versuchen:Aufruf von benutzerdefinierten Ereignissen auf Meteor 1.2

Template.foo.events ({ 

"click button.my_event" : function (e) { 
//event 
} 
}) 

Ich habe versucht, es zu nennen die jQuery-Methode .trigger mit() wie folgt:

action : function() { 
$('.my_event').trigger('click button.my_event'); 
} 

Welche fehlgeschlagen. Später dachte ich, dass das Ereignis selbst gemacht werden muss, die jQuery-Ereignis Schicht, um mit Trigger() zu verwenden, so habe ich versucht, dass:

"click button.my_event" : $(".my_event").on("click",function (e) { 
//event 
}), 

Dieser Ansatz auch ausgefallen ist. Fehle ich etwas?

Edit: Ich misspoke, wenn ich es als eine benutzerdefinierte Veranstaltung bezeichnet. Was ich wirklich meinte, war ein reguläres Klickereignis, das eine Folge von Methoden aktiviert (wie jedes normale Ereignis).

Antwort

0

Sie haben den Ereignistyp als click angegeben. Deshalb funktioniert es nicht.

Hier funktioniert Beispiel:

<template name="Test"> 
    <button class="trigger">Trigger</button> 
    <button class="test-button">Test</button> 
</template> 

JS

Template.Test.events({ 
    'click .trigger': function (event, tmpl) { 
    tmpl.$('.test-button').trigger('myEvent'); 
    }, 

    //custom event handler 
    'myEvent .test-button': function (event, tmpl) { 
    console.log('Hello, myEvent'); 
    } 
}); 
+0

Ich glaube, ich meine Frage falsch formuliert; Ich verwende das Click-Ereignis, um bestimmte Funktionen auszuführen, was ich unter "benutzerdefiniertes Ereignis" verstehe. Was ich wirklich wollte, war dieses Programm programmatisch auszulösen. – user43825

+0

@ user43825 Dann müssen Sie einfach 'tmpl. $ ('. Button.my_event'). Click()' – Tdm

+0

Ich dachte daran, das außerhalb von Template.Tests.events() zu tun, was ich denke, dass Ihre Methode nur gilt wenn ich es von einer anderen Veranstaltung aus anrufe. Mein Problem ist vom Eisenrouter auszulösen. – user43825

Verwandte Themen