Bagaimana untuk berkomunikasi antara komponen Sudut? Artikel berikut akan memperkenalkan kepada anda 5 kaedah komunikasi antara komponen Angular Jika perlu, anda boleh merujuknya~
komponen dibina oleh. Unit sudut, untuk memastikan data boleh dipindahkan ke sana ke mari antara komponen dalam projek, Angular merangkum beberapa kaedah yang boleh mencapai komunikasi antara komponen. [Tutorial berkaitan yang disyorkan: "tutorial sudut"]
Komponen induk
induk.komponen.tsage = 18; name = ' xiaoming '
<app-child-1 [age]="age" [name]="name"></app-child-1>
Komponen anak
child1.component.ts@Input() age!: number;
Pintasan perubahan dalam nilai atribut input
1 untuk memintas perubahan nilai dalam komponen induk dan mengambil tindakan. child1.component.ts@Input() set name(name: string) { this._name = name.trim(); } private _name: string;
ngOnChanges(changes: SimpleChanges): void { console.log(changes); }
Komponen kanak-kanak
kanak-kanak1.komponen.ts@Output() voted = new EventEmitter<boolean>(); emitValue(): void { this.voted.emit(true); }
<button (click)="emitValue()">Click</button>
Komponen induk
induk.komponen.html<app-child-1 [age]="age" [name]="name" (voted)="getChildParam($event)"></app-child-1>
getChildParam(value: boolean): void { console.log(value); // true }
Komponen anak
child1.component.ts
address = 'Shanghai'; setAddress(address: string): void { this.address = address; }
Komponen induk
parent.component.html<app-child-1 [age]="age" [name]="name" (voted)="getChildParam($event)" #child1Component></app-child-1> <div>{{child1Component.address}}</div> <button (click)="child1Component.setAddress('Beijing')">Click</button>
Anda boleh mengakses sifat dan kaedah komponen anak melalui pembolehubah child1Component
5@ViewChild(Child1Component) private child1Component!: Child1Component;
blog.tcs-y; .com/2019/10/08/…
Suntikan perkhidmatan dalam pembina komponen 1 dan tetapkan data child1.component.ts
child1.component.htmlimport {BehaviorSubject} from 'rxjs'; import { Injectable} from '@angular/core'; @Injectable( {providedIn: 'root'} ) export class DataService { data: BehaviorSubject<number> = new BehaviorSubject<number>(0); }
constructor(private dataService: DataService) {} // 设置data的值 changeData(): void { this.dataService.data.next(10); }
<button (click)="changeData()">Click</button>
! !
Atas ialah kandungan terperinci Perbincangan ringkas mengenai 5 kaedah komunikasi antara komponen Sudut. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!