使用元件時,有時需要通知其他元件某件事發生了。可能是按鈕被點選、項目被加入清單或從清單中移除,或是其他重要的更新發生了。在這種情況下,元件需要與父元件溝通。
Angular 使用 output() 函式來實現這類行為。
NOTE: 在輸出指南中進一步了解自訂事件。
在這個練習中,你將學習如何使用 output() 函式與元件溝通。
要建立從子元件到父元件的溝通路徑,請使用 output 函式來初始化一個類別屬性。
現在,這個元件可以產生事件,供父元件監聽。呼叫 emit 方法即可觸發事件:
child.ts
class Child {
...
onClick() {
this.count++;
this.incrementCountEvent.emit(this.count);
}
}
emit 函式會產生一個事件,其型別與 output 定義的型別相同。
好了,換你來試試看。依照以下任務完成程式碼:
-
加上
output()屬性更新
child.ts,加上一個名為addItemEvent的輸出屬性,別忘了把輸出型別設為string。 -
完成
addItem方法在
child.ts中更新addItem方法,使用以下程式碼作為邏輯:child.ts
addItem() { this.addItemEvent.emit('🐢'); } -
更新
App範本在
app.ts中更新範本,加上以下程式碼,監聽所發出的事件:<app-child (addItemEvent)="addItem($event)" />現在,每次點選 "Add Item" 按鈕,都會把一個新項目加到清單中。
哇,你到這裡已經完成了元件基礎——太厲害了 👏
繼續學習,解鎖 Angular 更多出色的功能。