Angular TIPS

Angular TIPS

イベントハンドラーでイベント情報を参照するには?($event)

2017年7月31日

要素にイベントハンドラーをバインドするEvent Bindingで、その引数で得られるイベントオブジェクト「$event」から、イベントに関する詳細情報を取得する方法を説明する。

  • このエントリーをはてなブックマークに追加

【対応バージョン】 Angular 4以降。v4時点で執筆しました。

 JavaScriptでは、イベントに際してさまざまな情報を管理しています。具体的には、発生したイベントの種類、イベント発生元の要素、その座標位置、(キーイベントであれば)押されたキーの種類などです。そして、これらの情報を管理するオブジェクトのことをイベントオブジェクトと言います。

 イベントハンドラーでイベントオブジェクトを利用するには、Event Bindingに際して、引数として$eventを渡すだけです。$eventは、Angularであらかじめ用意されているイベントオブジェクトです。

 具体的な例も見てみましょう。例えば以下はボタンクリック時に、イベントオブジェクトの内容をログ出力する例です。

TypeScript
import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
    <!--イベントハンドラーにイベントオブジェクトを渡す-->
    <input type="button" value="ログ出力" (click)="onclick($event)" />
  `,
})
export class AppComponent  { 
  // イベント情報をログに出力
  onclick(e: any) {
    console.log(e);
  }
}
イベントハンドラーにイベントオブジェクトを渡すためのコード(app.component.ts)
イベント情報をログ出力

 イベントオブジェクトで利用できる主なメンバーは、以下の通りです。

メンバー 概要
type イベントの種類
timeStamp イベントの発生時刻(1970/01/01からの経過ミリ秒)
screenX スクリーン上のX座標
screenY スクリーン上のY座標
pageX ページ上のX座標
pageY ページ上のY座標
clientX ブラウザー表示領域上のX座標
clientY ブラウザー表示領域上のY座標
altKey Altキーを押したか
ctrlKey Ctrlキーを押したか
shiftKey Shiftキーを押したか
which キーコード、マウスボタンの種類
preventDefault() デフォルトの動作をキャンセル
stopPropagation() イベントのバブリングを止める
イベントオブジェクトの主なメンバー

 イベントオブジェクトの具体的な用法については、後日「TIPS:イベントが発生した座標を取得するには?」などで解説の予定です。

処理対象:テンプレート構文(Template Syntax) カテゴリ:基本
処理対象:ステートメントコンテキスト(Statement context) カテゴリ:テンプレート構文(Template Syntax)
処理対象:$event(イベントオブジェクト) カテゴリ:テンプレート構文(Template Syntax) > ステートメントコンテキスト(Statement context)

※以下では、本稿の前後を合わせて5回分(第16回~第20回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

16. Angular CLIで、Angularアプリのコードを自動生成するには?

Angular CLIのng generateコマンドを使ってAngularアプリ用コードを自動生成してみる。また、各アプリのAngular CLI設定ファイルをエディターで編集する方法も紹介する。

17. イベントハンドラーを登録するには?(Event Binding)

要素にイベントハンドラーをバインドするEvent Bindingについて、2つのバインディング構文を説明する。

18. フォームの入力値をコンポーネントと同期するには?(双方向バインディング)

テンプレート上のフォーム入力値とコンポーネントのプロパティ値を双方向にバインドするTwo-way Bindingのバインディング構文を説明し、その仕組みを紹介する。

19. 【現在、表示中】≫ イベントハンドラーでイベント情報を参照するには?($event)

要素にイベントハンドラーをバインドするEvent Bindingで、その引数で得られるイベントオブジェクト「$event」から、イベントに関する詳細情報を取得する方法を説明する。

20. フォームへの入力値をイベントハンドラーで受け取るには?(テンプレート参照変数)

フォーム要素への入力値をイベントとして受け取る方法として、テンプレート参照変数を利用する方法を説明する。

サイトからのお知らせ

Twitterでつぶやこう!


Build Insider賛同企業・団体

Build Insiderは、以下の企業・団体の支援を受けて活動しています(募集概要)。

ゴールドレベル

  • 日本マイクロソフト株式会社
  • グレープシティ株式会社