Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 侦听特定HTML元素上的事件_Angular - Fatal编程技术网

Angular 侦听特定HTML元素上的事件

Angular 侦听特定HTML元素上的事件,angular,Angular,我试图找出如何在angular2中的特定元素上收听特定事件 HTML 不确定在Angular2中实现这一点的正确方法是什么,希望有人能给出答案。有几种方法可以实现这一点: 指令 您可以创建一个将应用于webcomponent/component的指令,然后使用@HostListener对事件做出反应。以下是一个例子: @Directive({ selector: '[highlight]' }) class HighlightDirective { constructor(pr

我试图找出如何在angular2中的特定元素上收听特定事件

HTML


不确定在Angular2中实现这一点的正确方法是什么,希望有人能给出答案。

有几种方法可以实现这一点:

指令

您可以创建一个将应用于webcomponent/component的指令,然后使用@HostListener对事件做出反应。以下是一个例子:

@Directive({
    selector: '[highlight]'
})

class HighlightDirective {
    constructor(private _element: ElementRef) {
    }

    @HostListener('click') onClick() {
        this.highlightConfig = {
            color: 'green'
        };

        this._element.nativeElement.style.backgroundColor =
            this._element.nativeElement.style.backgroundColor ? null : this.highlightConfig.color;
    }

}
然后将其应用于组件:

<div highlight>here</div>
事件

您还可以在组件上应用默认/自定义事件:

<div (click)="myFunc()">Here</div>

如果不使用指令呢?是的,正如我所说的,您可以简单地使用事件。对于wheel,您有wheel='myFunc'。
<div highlight>here</div>
@HostListener('mousewheel', ['$event']) onMouseWheelChrome(event: any) {
    // my code
}
<div (click)="myFunc()">Here</div>