国产探花免费观看_亚洲丰满少妇自慰呻吟_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); }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 汉源县| 漳州市| 宁安市| 四子王旗| 当雄县| 菏泽市| 和田县| 中江县| 霸州市| 侯马市| 巴东县| 巴林右旗| 万盛区| 长海县| 棋牌| 孙吴县| 兴和县| 武功县| 定边县| 郓城县| 二手房| 罗甸县| 宿松县| 肃北| 阜城县| 惠水县| 邻水| 股票| 奉化市| 绥德县| 全州县| 什邡市| 通榆县| 无锡市| 讷河市| 临泽县| 静安区| 溆浦县| 巴青县| 商洛市| 康保县|