Angular2动态附加DOM事件
我和Angular2一起工作,为Angular2工作。我试图从他们网站上的一个问题中添加一些功能,该问题要求将事件处理程序附加到html元素Angular2动态附加DOM事件,angular,typescript,dom-events,Angular,Typescript,Dom Events,我和Angular2一起工作,为Angular2工作。我试图从他们网站上的一个问题中添加一些功能,该问题要求将事件处理程序附加到html元素 $('html').on('dxclick', function(event) { console.log('DxClick - Clicked'); }); 很明显,在安格拉尔,这是不被接受的,所以我正在努力找出正确的方法。我尝试了以下方法: constructor(@Inject(EventManager) priva
$('html').on('dxclick', function(event) {
console.log('DxClick - Clicked');
});
很明显,在安格拉尔,这是不被接受的,所以我正在努力找出正确的方法。我尝试了以下方法:
constructor(@Inject(EventManager) private eventManager: EventManager) {
this.eventManager.addGlobalEventListener('html', 'dxclick', function(event: any) {
console.log('DxClick Clicked');
});
}
这只会导致和“无法读取未定义的”异常的属性“addEventListener”
public ngAfterViewInit() {
let htmlElement: any = this.elementRef.nativeElement;
while (htmlElement && htmlElement.localName !== 'html') {
htmlElement = htmlElement.parentNode;
}
if (htmlElement) {
this.eventManager.addEventListener(htmlElement, 'dxclick', function (event: any) {
console.log('DxClick Clicked');
});
}
}
这段代码查找html元素并成功执行addEventListener,但是从未执行回调函数
是否可以复制jQuery代码,如果可以,我遗漏了什么。您可以使用以下语法将其附加到组件中的全局事件,例如调整事件大小:
@HostListener('window:resize')
resizeWindow() {
// window has been resized
}
您可以使用以下语法(例如调整事件大小)附加到组件中的全局事件:
@HostListener('window:resize')
resizeWindow() {
// window has been resized
}
这还会导致和“无法读取未定义的属性'addEventListener'的”异常。我认为html不是HostListener的有效目标,这也会导致“无法读取未定义属性'addEventListener'的”异常。我认为html不是HostListener的有效目标