如何正确地将document.addEventListener添加到Angular2?

时间:2016-10-26 06:29:43

标签: angular

我遇到了cordova RemoteControl plugin,要监听其事件,需要注册addEventListener。

//listen for the event
document.addEventListener("remote-event", function(event) {
//do something
});

这对我来说是否适合这样做?

5 个答案:

答案 0 :(得分:11)

尝试以下步骤使用角度2添加事件侦听器。我不确定" remote-event"事件,但"点击"事件对我来说很好,如下所示。

import { ElementRef, Renderer } from '@angular/core';

constructor(public el: ElementRef, public renderer: Renderer) { 
   renderer.listenGlobal('document', 'click', (event) => {
     // Do something with 'event'
   });
}

更新

根据@paqogomez的评论。

Renderer已重命名为Renderer2listenGlobal已重命名为listen

答案 1 :(得分:1)

这对我来说就像魔术一样

 document.querySelector('#videostop').addEventListener('click', () => {
            //function here 
            console.log('your result');
         });

答案 2 :(得分:0)

您可以将EventListener添加到构造函数中

constructor() {
    document.addEventListener("remote-event", function(event) {
       //do something
    },false);
}

答案 3 :(得分:0)

您可以使用@HostListener这是更好的解决方案 https://juristr.com/blog/2016/09/ng2-event-registration-document/ 如果您想对angular应用程序使用document.someMethod,也可以在构造函数中注入文档:

import { DOCUMENT } from '@angular/common'; 
@Inject(DOCUMENT) private _document: any

答案 4 :(得分:0)

我更喜欢使用@HostListener

@HostListener('document:remote-event', ['$event'])
onDocumentRemoteEvent(ev: any) {
    // handle the event here
}