新聞中心
事件綁定
通過事件綁定,你可以偵聽并響應(yīng)用戶操作,例如按鍵、鼠標(biāo)移動、點擊和觸摸。

朝天ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
包含本指南中的代碼段的工作示例,參見現(xiàn)場演練 / 下載范例。
綁定到事件
要綁定到事件,請使用 Angular 的事件綁定語法。此語法由等號左側(cè)括號內(nèi)的目標(biāo)事件名和右側(cè)引號內(nèi)的模板語句組成。在下面的示例中,目標(biāo)事件名是 ?click ?,模板語句是 ?onSave()? 。
事件綁定偵聽按鈕的單擊事件,并在發(fā)生單擊時調(diào)用組件的 ?onSave()?。
綁定到被動事件
Angular 還支持被動事件偵聽器。例如,使用以下步驟使?jié)L動事件變?yōu)楸粍拥摹?/p>
- 在 ?
src?目錄下創(chuàng)建一個文件 ?zone-flags.ts? 。 - 將以下行添加到此文件中。
- 在 ?
src/polyfills.ts? 文件中,在導(dǎo)入 zone.js 之前,先導(dǎo)入新創(chuàng)建的 ?zone-flags? 。
(window as any)['__zone_symbol__PASSIVE_EVENTS'] = ['scroll'];import './zone-flags';
import 'zone.js'; // Included with Angular CLI.在這些步驟之后,如果你為 ?scroll ?事件添加事件偵聽器,偵聽器就會是 ?passive ?的。
使用 EventEmitter 自定義事件
指令通常使用 Angular 的 ?EventEmitter ?引發(fā)自定義事件,如下所示。
- 該指令創(chuàng)建一個 ?
EventEmitter?并將其對外暴露為屬性。 - 然后,該指令調(diào)用 ?
EventEmitter.emit(data)? 發(fā)出事件,傳入消息數(shù)據(jù),該消息數(shù)據(jù)可以是任何東西。 - 父指令通過綁定到該屬性來監(jiān)聽事件,并通過傳入的 ?
$event? 對象接收數(shù)據(jù)。
考慮一個 ?ItemDetailComponent ?,它會顯示條目信息并響應(yīng)用戶操作。盡管 ?ItemDetailComponent ?顯示了一個刪除按鈕,但它并不包含刪除英雄的功能。它只會引發(fā)一個報告用戶要求刪除的事件。
{{ item.name }}
該組件定義了一個 ?deleteRequest ?返回 ?EventEmitter ?的屬性。當(dāng)用戶單擊 Delete 時,該組件將調(diào)用 ?delete()? 方法,讓這個 ?EventEmitter ?發(fā)出 ?Item ?對象。
// This component makes a request but it can't actually delete a hero.
@Output() deleteRequest = new EventEmitter- ();
delete() {
this.deleteRequest.emit(this.item);
this.displayNone = this.displayNone ? '' : 'none';
this.lineThrough = this.lineThrough ? '' : 'line-through';
}
宿主父組件將綁定到 ?ItemDetailComponent ?的 ?deleteRequest ?事件,如下所示。
當(dāng) ?deleteRequest ?事件觸發(fā)時,Angular 就會以該條目為參數(shù)調(diào)用其父組件的 ?deleteItem()?。
確定事件目標(biāo)(target)
為了確定事件的目標(biāo),Angular 會檢查目標(biāo)事件的名稱是否與已知指令的事件屬性匹配。在以下示例中,Angular 會檢查 ?myClick ?是否來自自定義指令 ?ClickDirective ?的事件。
myClick is an event on the custom ClickDirective:
{{clickMessage}}如果目標(biāo)事件名稱 ?myClick ?未能匹配元素上的事件或 ?ClickDirective ?的輸出屬性,則 Angular 將報告“未知指令”錯誤。
當(dāng)前題目:創(chuàng)新互聯(lián)Angular教程:Angular事件綁定
文章地址:http://www.dlmjj.cn/article/codeods.html


咨詢
建站咨詢
