Tiep Phan · · 2 min read

JavaScript · Lập Trình · Lập Trình Angular · Programming · Web Development

Thử Nghiệm Với Angular 2 Phần 6: Quản Lý Event Trong Angular 2

Giới thiệu

Trong bài học đầu tiên của series Thử Nghiệm Với Angular 2 chúng ta đã làm quen với Event Binding trong Angular 2. Bài học này sẽ củng cố một số kiến thức về Event trong Angular 2 như $event object hay key event filtering.

Event Binding

Angular 2 cung cấp event binding cho bất kỳ event nào của DOM tương ứng như click, keyup, keydown, mouseover, …

Để binding event cho một phần tử nào bạn chỉ cần bao đóng nó trong cặp dấu ( <event> ) và bên trong là tên của event, vế tiếp theo của binding là một template statement: có thể là một hàm, hay một câu lệnh thực thi một hành động nào đó.

Ví dụ:

<button (click)="onClickMe()">Click me!</button>

Thao tác với $event object

Angular 2 cung cấp một object tên là $event, khi nó được truyền vào là tham số của hàm handle event thì bạn có thể truy cập vào các thuộc tính mà nó chứa trong đó, chẳng hạn event cho keyboard, mouse.

Ví dụ:

<input (keyup)="onKey($event)">
export class LoggerKeyUpComponent {
  onKey(event: Event) {
    // do something with event param
    console.log(event);
  }
}

Hoặc có thể có type của event:

<input (keyup)="onKey($event)">
export class LoggerKeyUpTypeComponent {

  onKey(event: KeyboardEvent) { // with type info
    // do something with event param
    console.log((<HTMLInputElement>event.target).value);
  }
}

Key event filtering

Khi thao tác với keyboard event, có thể chúng ta chỉ muốn lắng nghe trên một key xác định nào đó, lúc đó chúng ta có thể dùng key event filtering.

Ví dụ:

<input (keyup.enter)="onEnter($event)">
export class KeyUpFilteringComponent {
  value = '';
  onEnter(event: Event) { 
    // do something
    this.value = event.target.value;
  }
}

Video bài học

Tham khảo

Documentation: https://angular.io/docs/ts/latest/guide/user-input.html

Share:
Back to Blog