今天要來介紹事件監聽,讓使用者可以與應用程式互動。
在 Angular 要與應用程式互動,會使用 ()
來綁定事件監聽器,並指定事件觸發時要執行的方法。
<button type="button" (click)="onClick()">
點擊按鈕
</button>
按鍵修飾符 key modifiers
監聽鍵盤觸發的事件,還可以繼續取得鍵盤特定鍵,例如:(keydown.enter)
代表當按下 Enter 鍵時觸發事件。
<input type="text" (keyup.enter)="onEnter($event)" />
也可以偵測特定鍵組合
<!-- 同時按下 Shift 鍵和 Enter 鍵並放開時,才會觸發 -->
<input (keyup.shift.enter)="onShiftEnter()" />
$event
在 Angular 模板中,當事件被觸發時,會傳遞一個 $event
物件給事件處理器。
$event
是 Angular 模板語法中的特殊變數,常使用的用法如下:
export class App {
onItemClick(event: MouseEvent) {
console.log('元件被點擊', event);
}
}
<button (click)="onItemClick($event)">點我</button>
在某些情況下,可能需要防止事件的預設行為,例如點擊連結時不跳轉頁面,可以使用$event.preventDefault()
來達成。
<a href="javascript:;" (click)="onLinkClick($event)">
點擊連結
</a>
export class App {
onLinkClick(event: MouseEvent) {
event.preventDefault();
console.log('連結被點擊,但不跳轉');
}
}
今日目標:練習繫結用法,將 header 的 icon ,改成 img 標籤。
今天介紹了 Angular 的事件監聽,現在已經知道如何讓使用者可以與應用程式互動。接下來,下一篇將認識 Angular 的近年來的關鍵更新 Signal,了解它如何改變開發 Angular 應用的方式。