Detaillierte Erläuterung der Kommunikation zwischen Angular-Eltern- und -Kindkomponenten

Detaillierte Erläuterung der Kommunikation zwischen Angular-Eltern- und -Kindkomponenten

Verwendete APIs

Input - definiert zulässige Eigenschaften in der untergeordneten Komponente, die von der übergeordneten Komponente verwendet werden können, um Daten an die untergeordnete Komponente zu übergeben

Output – Die Ausgabeeigenschaft der untergeordneten Komponente. Diese Eigenschaft muss vom Ereignistyp „EventEmitter“ sein, um die übergeordnete Komponente zu benachrichtigen, dass sie entsprechende Aktionen ausführen soll.

EventEmitter – wird in Komponenten mit @Output-Direktive verwendet, um benutzerdefinierte Ereignisse synchron oder asynchron auszugeben und Handler für diese Ereignisse zu registrieren, indem Instanzen abonniert werden.

Einfaches Beispiel

Rendern Sie Unterkomponenten in einer Liste. Klicken Sie auf eine Unterkomponente, um die übergeordnete Komponente zu benachrichtigen, dass eine Operation ausgeführt werden soll.

person.ts

Exportschnittstelle Person {
  Name: Zeichenfolge;
  Alter: Anzahl;
  Geschlecht: Zeichenfolge;
}

Übergeordnete Komponente

importiere { Komponente, OnInit } von '@angular/core';
importiere { Person } von './person';
@Komponente({
  Selektor: ‚app-comp-parent‘,
  Vorlage: `
    <app-comp-untergeordnetes
      *ngFor="Person von Personenliste lassen"
      (itemClick)="beiItemClick($event)"
      [data]="Person"
    ></app-comp-child>
  `,
})
Exportklasse CompParentComponent implementiert OnInit {
  personList: Person[] = [
    { Name: '张三', Alter: 21, Geschlecht: '男' },
    { Name: 'Li Si', Alter: 25, Geschlecht: 'Männlich' },
    { Name: '李莉', Alter: 20, Geschlecht: '女' },
  ];
  Konstruktor(){ }
  ngOnInit(): void { }
  beiArtikelKlick(Artikel: Person){
    console.log('Klick-Person: ', Element);
  }
}

Unterkomponenten

importiere { Komponente, EventEmitter, Eingabe, OnInit, Ausgabe } von '@angular/core';
importiere { Person } von './person';
@Komponente({
  Selektor: ‚app-comp-child‘,
  Vorlage: `
    <div (Klick)="itemClick.emit(Daten)">
      Name: {{ data.name }}
      Alter: {{ data.age }}
      Geschlecht: {{ data.sex }}
    </div>
  `,
})
Exportklasse CompChildComponent implementiert OnInit {
  @Input() Daten!: Person;
  @Output() itemClick = neuer EventEmitter();
  Konstruktor(){ }
  ngOnInit(): void { }
}

Wirkung

Rendern

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können!

Das könnte Sie auch interessieren:
  • Beispiel für die Kommunikation zwischen Angular2-Eltern- und -Kindkomponenten
  • Implementierung der gemeinsamen Servicekommunikation zwischen übergeordneten und untergeordneten Angular 2-Komponenten
  • Beispiel für die Datenkommunikation zwischen Angular2-Eltern- und -Kindkomponenten

<<:  Reiner CSS-Code zum Erzielen eines Drag-Effekts

>>:  Eine detaillierte Einführung in die Speicherverwaltung und -adressierung unter Linux

Artikel empfehlen

Sie müssen wirklich die Verwendung von CSS-Variablen var() verstehen

Wenn ein Webprojekt immer größer wird, werden sei...

So passen Sie die Protokollebene von Nginx in Docker an

Inhaltsverzeichnis Einleitung Nginx-Dockerdatei N...

So verwenden Sie den MySQL-Autorisierungsbefehl „grant“

Die Beispiele in diesem Artikel laufen auf MySQL ...

80 Zeilen Code zum Schreiben eines Webpack-Plugins und Veröffentlichen auf npm

1. Einleitung Ich habe vor Kurzem die Prinzipien ...

Einführung in die UFW-Firewall unter Linux

Werfen wir einen Blick auf ufw (Uncomplicated Fir...

Tabellen-Paging-Funktion implementiert durch Vue2.0+ElementUI+PageHelper

Vorwort Ich habe kürzlich an einigen Front-End-Pr...

Zusammenfassung der 7 Protokolltypen in MySQL

In MySQL gibt es folgende Protokolldateien: 1: Pr...

Detailliertes Tutorial zur Installation und Konfiguration von Nginx unter Centos7

Hinweis: Der grundlegende Verzeichnispfad für die...

So halten Sie eine lange Verbindung aufrecht, wenn Sie den Nginx-Reverse-Proxy verwenden

· 【Szenenbeschreibung】 Nach HTTP1.1 unterstützt d...

MySQL Master-Slave-Replikationsprinzip und zu beachtende Punkte

Vorne geschrieben Ich habe kürzlich ein spezielle...

Implementierungsprozess des Nginx-Hochverfügbarkeitsclusters

Dieser Artikel stellt hauptsächlich den Implement...

Schritte zum Verpacken und Freigeben des Vue-Projekts

Inhaltsverzeichnis 1. Übergang von der Entwicklun...

Implementierungsbeispiel für Scan-Code-Zahlung im Vue-Projekt (mit Demo)

Inhaltsverzeichnis Nachfragehintergrund Gedankena...