typescript - Händelsebindning angular 2
Jag vill binda händelse med denna "tmp", men detta fäster också med den tidigare befintliga knappen, varför?
constructor(private renderer :Renderer ,private element : ElementRef){
}
private appender(){
var tmp = this.renderer.createElement(this.element.nativeElement,'button');
this.renderer.listen(tmp, 'click', ( event:Event ) => console.log(event));
}
Svar #1
Detta kan uppnås med Renderer2 enligt nedan,
Injicera Renderer2-tjänsten i komponenten
constructor(private renderer: Renderer2){}
Registrera en händelselyssnare med hjälp av listen-metoden
this.renderer.listen('body', 'click',this.calback)
Återuppringningsfunktionen kommer att köras när händelsen utlöses.
calback(event){
console.log(event)
}
Obs: Metoddefinition för listen, hänvisa till dokumentationen för mer information
listen(target: 'window'|'document'|'body'|any, eventName: string, callback: (event: any)
LIVE DEMO
