注意::我知道如何使用ElementRef
进行操作,因此,请尽可能着重使用HostListener
进行操作。
我想创建一个StopPropagationDirective
来接收我想停止传播的eventName
。
问题是此eventName
来自@Input
属性和
@HostListener(this.eventName, ['$event'])
目前找不到this.eventName
。错误:
Uncaught TypeError: Cannot read property 'eventName' of undefined
我尝试在this.eventName= 'click'
和constructor
内定义OnInit
,但没有结果。
代码在这里:
import {Directive, ElementRef, HostListener, Input, OnInit} from '@angular/core';
@Directive({
selector: '[appStopPropagation]'
})
export class StopPropagationDirective implements OnInit{
constructor() {
}
@Input('appStopPropagation') eventName: string = 'click';
@HostListener(this.eventName, ['$event']) onEvent($event){
$event.stopPropagation();
}
ngOnInit(){
}
}
谢谢。