In MyComponent
versuche ich, ein anderes Ereignis von einem Ereignishandler auszustoßen. (Dieses neue Ereignis wird von der übergeordneten Komponente verwendet, um einige Aktionen auszuführen). Ich habe einen Ereignisemitter als Mitglied von MyComponent
erstellt, aber die Ereignishandlermethode kann nicht auf den Ereignisemitter zugreifen. Es wirft ERROR TypeError: Cannot read property 'emit' of undefined
. Ich habe einige verwandte Fragen zu StackOverflow gefunden, aber konnte nicht viel verstehen, weil ich neu bei Angular2
bin.wirft ERROR TypeError: Kann die Eigenschaft 'emit' von undefined nicht lesen
import { Component, Input, Output, OnChanges, SimpleChanges, OnInit, EventEmitter } from '@angular/core';
import YouTubePlayer from 'youtube-player';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnChanges, OnInit {
@Input()
videoURL = '';
player : any;
videoId : any;
@Output()
myEmitter: EventEmitter<number> = new EventEmitter();
ngOnInit(): void {
this.player = YouTubePlayer('video-player', {
videoId: this.videoId,
width: "100%"
});
this.registerEvents();
}
private registerEvents() {
this.player.on("stateChange", this.onStateChangeEvent);
}
private onStateChangeEvent(event: any) {
console.log("reached here: " + event);
this.myEmitter.emit(1); //throws `ERROR TypeError: Cannot read property 'emit' of undefined`
}
}
Könnte mir jemand helfen? Bitte beachten Sie, dass ich nur Ereignisse von onStateChangeEvent
ausstrahlen muss, da ich später verschiedene Arten von Ereignisemittern für verschiedene Arten von Ereignissen haben werde. Also werde ich ein Schaltergehäuse in onStateChangeEvent
setzen und verschiedene Emitter verwenden - einen für jeden Typ.