我正在使用Angular2和devextreme for angular2。我试图在他们的网站上添加一些问题的功能,这些功能要求将事件处理程序附加到html元素
$('html').on('dxclick', function(event) {
console.log('DxClick - Clicked');
});
显然处于angular2中这将是不受欢迎的,所以我试图找出如何正确地做到这一点。我尝试了以下内容:
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代码,如果是这样,我错过了什么。
答案 0 :(得分:0)
您可以使用以下语法附加到组件中的全局事件,例如调整大小事件:
L1 = [[x.split(' A ')[-1].split(' B ')[-1]] for x in L]