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

Relaterade artiklar