Angular2でWindowイベントを設定する

スポンサーリンク

Angular2でのWindowイベントの設定方法を紹介します。

ディレクティブで設定する

例えば、resizeイベントの際に処理を実行したい場合は次のようにします。

<div (window:resize)="onResize()">Box</div>

ここでは、ディレクティブが含まれるコンポーネントの onResize メソッドが呼ばれます。

HostListenerで設定する

Angular2には、HostListener というデコレータがあります。

import { Component, HostListener } from '@angular/core';

@HostListener を宣言した後のメソッドをバインドすることができます。

export class Demo {

    ...

    // resizeイベントを宣言
    @HostListener('window:resize')
    onResize() {
        // resize時の処理
    }

    // clickイベントを宣言
    @HostListener('click', ['$event.target'])
    onClick(btn) {
        // click時の処理
    }
}

第2引数にはメソッドに渡すイベントオブジェクトを指定することが出来ます。
お試しあれ〜。