国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Angular4.x Event (DOM事件和自定義事件詳解)

2024-05-06 15:28:58
字體:
來源:轉載
供稿:網友

Angular組件和DOM元素通過事件與外部進行通信,兩者中的事件綁定語法是相同的-(eventName)="expression":

<button (click)="onClick()">Click</button>

DOM元素

DOM 元素觸發的一些事件通過 DOM 層級結構傳播,事件首先由最內層的元素開始,然后傳播到外部元素,直到它們到根元素,這種傳播過程稱為事件冒泡。

DOM事件冒泡與Angular可以無縫工作,具體示例如下:

import { Component } from '@angular/core';@Component({ selector: 'exe-app', template: ` <div (click)="onClick()"> <button>Click</button> </div> `})export class AppComponent { onClick() { console.log('Click'); }}

以上代碼成功運行后,當用戶點擊 Click 按鈕,瀏覽器控制臺將會輸出:

Click

即表示 <div> 元素上設置的監聽函數被執行,也間接證明了事件冒泡能正常工作。

Angular Component

Angular 允許開發者通過 @Output() 裝飾器和 EventEmitter 自定義事件。它不同于 DOM 事件,因為它不支持事件冒泡。

首先來看一下自定義組件如何監聽DOM事件:

event-bubbling.component.ts

import { Component } from '@angular/core';@Component({ selector: 'event-bubbling', template: ` <div> <button>Click</button> </div> `})export class EventBubblingComponent { }

app.component.ts

import { Component } from '@angular/core';@Component({ selector: 'exe-app', template: ` <div> <event-bubbling (click)="onClick()"></event-bubbling> </div> `})export class AppComponent { onClick() { console.log('Click'); }}

以上代碼成功運行后,當用戶點擊 Click 按鈕,瀏覽器控制臺也會輸出 Click。表示我們的自定義組件,也是可以正常處理組件內元素觸發的 click 事件。但當我們在自定義組件中創建自定義事件時,事件名稱也是使用 click ,那么會不會有問題呢?我們馬上來實踐一下。

Custom Events

event-bubbling.component

import { Component, Output, EventEmitter } from '@angular/core';@Component({ selector: 'event-bubbling', template: ` <div> <button (click)="onClick('Button 1')">Button 1</button> <button (click)="onClick('Button 2')">Button 2</button> </div> `})export class EventBubblingComponent { @Output() click = new EventEmitter(); onClick(button: string) { this.click.next(button); }}

app.component.ts

import { Component } from '@angular/core';@Component({ selector: 'exe-app', template: ` <div> <event-bubbling (click)="onClick($event)"></event-bubbling> </div> `})export class AppComponent { onClick(event: any) { console.log(event); }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 勐海县| 交城县| 东丰县| 孙吴县| 汤阴县| 阳谷县| 广平县| 厦门市| 揭阳市| 连江县| 新泰市| 石阡县| 砀山县| 枣阳市| 莱芜市| 巴里| 连江县| 清苑县| 辉县市| 乐安县| 华安县| 山丹县| 进贤县| 库尔勒市| 资中县| 吴忠市| 财经| 莆田市| 舞钢市| 抚州市| 山西省| 临海市| 乐昌市| 阳春市| 定西市| 宣汉县| 大洼县| 姜堰市| 新丰县| 和平县| 双流县|