Ich versuche das "oninput" -Ereignis des Eingabebereichselements an eine benutzerdefinierte Methode zu binden, die in der entsprechenden Typoskriptdatei deklariert ist.Benutzerdefinierte Methode wird nur einmal in der addEventListener-Methode ausgelöst?
Im Anschluss an das HTML-Element:
<input type="range" id='motivation-grade' value="3" min="1" max="5">
Dies ist der Code-Ereignis-Listener, die ich in ngOnInit Methode meiner angular2 Komponente bin mit:
ngOnInit() {
this.elem = document.getElementById('motivation-grade');
this.elem.addEventListener("click", this.motivation(document.getElementById('motivation-grade').value));
}
Hier in Motivation (str: String) Methode, ich möchte einige Links basierend auf ausgewählten Wert jedes Mal zeigen, wenn Benutzer es ändert. Aber die motivation() Methode feuert nur einmal beim Starten und danach scheint es nicht getroffen zu werden. Kann mir jemand helfen zu verstehen, was mir fehlt?
gespeichert werden, die 'ngOnInit' – brk
Ist' this.motivation' Rückkehr ruft eine Funktion? Wenn nicht, dann ist dies ein Duplikat von [Wie übergebe ich den Parameter an die Funktion 'addEventListener'?] (Http://stackoverflow.com/q/12024483/4642212). – Xufox
@ Xufox ist richtig. Sie sollten auch direkte DOM-Manipulation mit Winkel 2 vermeiden. – n00dl3