angular - 事件绑定(bind) Angular 2

标签 angular typescript

我想用这个“tmp”绑定(bind)事件,但它也与以前存在的按钮相关联,为什么?

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));
    }

最佳答案

这可以使用 Renderer2 实现,如下所示,

向组件注入(inject) Renderer2 服务

constructor(private renderer: Renderer2){}

使用listen方法注册一个事件监听器

this.renderer.listen('body', 'click',this.calback)

回调函数将在事件触发时执行。

calback(event){
  console.log(event)
}

注意:listen 的方法定义refer docs了解更多信息

listen(target: 'window'|'document'|'body'|any, eventName: string, callback: (event: any)

LIVE DEMO

关于angular - 事件绑定(bind) Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44867300/

相关文章:

javascript - 如何在 Angular 中编写单个 post 服务并动态调用它多次?

angular - 如何在 HTML 表格中实现依赖的 <select>

angular - Angular4 HttpClient.get() 什么时候返回未定义?

angular - 如何删除 Firestore 文档中的字段?

typescript - 在 deno 中使用 mapbox-gl

Angular 2+ 本地化 (i18n) rtl 支持

javascript - 从函数返回 Observable

angularjs - 如何使用 ng2-dnd 包从 json 而不是数组读取数据?

javascript - 通过触发对话框覆盖的函数在 Angular 组件之间传递值

Typescript Record<Key, object> 其中对象 "id"属性等于 Key