angular父子組件通信詳解
用到的api
Input - 子組件中定義可接受的屬性,可以用來父組件給子組件傳遞數(shù)據(jù)
Output - 子組件中定義輸出的屬性,該屬性需要是 EventEmitter 的事件類型,用來通知父組件做出相應(yīng)的操作
EventEmitter - 用在帶有 @Output 指令的組件中,以同步或異步方式發(fā)出自定義事件,并通過訂閱實例來為這些事件注冊處理器。
簡單的例子
列表渲染子組件,點擊子組件通知父組件進行操作
person.ts
export interface Person {
name: string;
age: number;
sex: string;
}
父組件
import { Component, OnInit } from '@angular/core';
import { Person } from './person';
@Component({
selector: 'app-comp-parent',
template: `
<app-comp-child
*ngFor="let person of personList"
(itemClick)="onItemClick($event)"
[data]="person"
></app-comp-child>
`,
})
export class CompParentComponent implements OnInit {
personList: Person[] = [
{ name: '張三', age: 21, sex: '男' },
{ name: '李四', age: 25, sex: '男' },
{ name: '李莉', age: 20, sex: '女' },
];
constructor(){ }
ngOnInit(): void { }
onItemClick(item: Person){
console.log('click-person: ', item);
}
}
子組件
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Person } from './person';
@Component({
selector: 'app-comp-child',
template: `
<div (click)="itemClick.emit(data)">
Name: {{ data.name }}
Age: {{ data.age }}
Sex: {{ data.sex }}
</div>
`,
})
export class CompChildComponent implements OnInit {
@Input() data!: Person;
@Output() itemClick = new EventEmitter();
constructor(){ }
ngOnInit(): void { }
}
效果

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
AngularJS service之select下拉菜單效果
這篇文章主要為大家詳細介紹了AngularJS service之select下拉菜單效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
AngularJS的依賴注入實例分析(使用module和injector)
這篇文章主要介紹了AngularJS的依賴注入,結(jié)合實例形式分析了依賴注入的原理及使用module和injector實現(xiàn)依賴注入的步驟與操作技巧,需要的朋友可以參考下2017-01-01
詳解使用KeyValueDiffers檢測Angular對象的變化
這篇文章主要為大家介紹了KeyValueDiffers檢測Angular對象的變化使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04
解決angular2在雙向數(shù)據(jù)綁定時[(ngModel)]無法使用的問題
今天小編就為大家分享一篇解決angular2在雙向數(shù)據(jù)綁定時[(ngModel)]無法使用的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Angularjs實現(xiàn)多個頁面共享數(shù)據(jù)的方式
本文給大家介紹使用Angularjs實現(xiàn)多個頁面共享數(shù)據(jù)的方式,通過定義一個共享服務(wù)service來實現(xiàn)此功能,對angularjs共享數(shù)據(jù)相關(guān)知識感興趣的朋友一起學(xué)習(xí)2016-03-03
AngularJS驗證信息框架的封裝插件用法【w5cValidator擴展插件】
這篇文章主要介紹了AngularJS驗證信息框架的封裝插件用法,分析了AngularJS表單驗證規(guī)則并實例說明了w5cValidator擴展插件的相關(guān)使用技巧,需要的朋友可以參考下2016-11-11
在 Angular2 中實現(xiàn)自定義校驗指令(確認密碼)的方法
這篇文章給大家探索 Angular 2 內(nèi)建的自定義驗證,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-01-01

