Detaillierte Erläuterung der Winkel-Zweiwegebindung

Detaillierte Erläuterung der Winkel-Zweiwegebindung

Bidirektionales Bindungsprinzip

Die bidirektionale Bindung kombiniert die Eigenschaftsbindung mit der Ereignisbindung.

Die bidirektionale Bindungssyntax von Angular ist eine Kombination aus eckigen Klammern und runden Klammern [()].

[] wird für die Eigenschaftenbindung und () für die Ereignisbindung verwendet.

Die Benennungsregel lautet [Eingabename] + Ändern.

  • Eigenschaftenbindung ( Input ) – Legt ein bestimmtes Elementattribut fest.
  • Ereignisbindung ( Output -output) – Lauscht auf Elementänderungsereignisse.

Daher gibt es ngModel und ngModelChange in der Form einer bidirektionalen Bindung, und Sie können auch die Eigenschaften der bidirektionalen Bindung anpassen.

ngModel

Zweiwege-Bindung an Formularelemente

importiere { Komponente, OnInit } von '@angular/core';
@Komponente({
  Selektor: ‚App-Bind‘,
  Vorlage: `
    <div>
      <div>Name: {{ name }}</div>
      <input Typ="Text" Stil="Breite: 300px;" nz-input Name="Name" [(ngModel)]="Name" Autovervollständigung="Aus">
    </div>
  `
})
Exportklasse BindComponent implementiert OnInit {
  Name = ";
  Konstruktor() { }
  ngOnInit(): void { }
}

Rendern

Rendern

Benutzerdefinierte bidirektionale Bindungseigenschaften

Komponente-html

<div>
  <div>inner: {{ Wert }}</div>
  <input style="width: 300px;" nz-input (input)="beiInput(input.value)" #input autocomplete="aus">
</div>

Komponenten-ts

importiere { Komponente, EventEmitter, Eingabe, OnInit, Ausgabe } von '@angular/core';
@Komponente({
  Selektor: ‚app-inner‘,
  Vorlagen-URL: "./inner.component.html",
  styleUrls: ['./inner.component.scss']
})
Exportklasse InnerComponent implementiert OnInit {
  // Eingabeeigenschaften festlegen @Input() value!: string;
  // Ausgabeereignis festlegen @Output() valueChange: EventEmitter<string> = new EventEmitter();
  Konstruktor() { }
  ngOnInit(): void { }
  onInput(Wert: Zeichenfolge){
    // Ausgabeereignis auslösen – Daten ausgeben this.valueChange.emit(value);
  }
}

Externe Verwendung

importiere { Komponente, OnInit } von '@angular/core';
@Komponente({
  Selektor: ‚App-Outer‘,
  Vorlage: `
    <div>
      <div>Name: {{ name }}</div>
      <app-inner [(Wert)]="Name"></app-inner>
    </div>
  `
})
Exportklasse OuterComponent implementiert OnInit {
  Name = ";
  Konstruktor() { }
  ngOnInit(): void { }
}

Rendern

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:
  • Detaillierte Erläuterung zweier Methoden zur Implementierung der bidirektionalen Bindung benutzerdefinierter Komponenten in Angular
  • Lösen Sie das Problem, dass die bidirektionale Winkelbindung keine Auswirkung hat und das ng-Modell nicht normal angezeigt werden kann
  • Lösen Sie das Problem, dass [(ngModel)] bei der bidirektionalen Datenbindung in Angular2 nicht verwendet werden kann
  • AngularJS-Prinzip der bidirektionalen Datenbindung: Anwendung von $watch, $apply und $digest
  • Ein Beispiel für die Implementierung der bidirektionalen Datenbindung mit benutzerdefinierten Angular-Komponenten
  • Eine kurze Erläuterung des Prinzips der bidirektionalen Bindung in AngularJs (Datenbindungsmechanismus)

<<:  Linux-Systemaufrufe für Betriebsdateien

>>:  Detaillierte Erklärung zur Verwendung von MySQL, wobei

Artikel empfehlen

Docker-Reinigungskiller/Docker-Overlay-Datei nimmt zu viel Speicherplatz ein

[Wenn ich mir all die Migrationsdateien im Intern...

So verwenden Sie video.js in Vue zum Abspielen von Videos im M3U8-Format

Inhaltsverzeichnis 1. Installation 2. Einführung ...

MySQL-Datentabellenpartitionierungsstrategie und Vor- und Nachteileanalyse

Inhaltsverzeichnis Warum brauchen wir Partitionen...

So deinstallieren Sie Docker Toolbox vollständig

Docker Toolbox ist eine Lösung zur Installation v...

Alibaba Cloud ESC Server Docker-Bereitstellung von Single Node Mysql

1. Laden Sie die beschleunigte Version von msyql ...

Vuex implementiert einfache Warenkorbfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Implementierung der Installation und Deinstallation von CUDA und CUDNN in Ubuntu

Inhaltsverzeichnis Vorwort Installieren des Grafi...

Detaillierte Schritte zur Installation des NERDTree-Plugins in Vim unter Ubuntu

NERDTree ist ein Dateisystembrowser für Vim. Mit ...

Benutzer müssen wissen, warum

Als ich in der Wertpapierfirma arbeitete, war ich ...

Quellcode der HTML-Einstellungen für die Benutzerregistrierungsseite

Gestalten Sie die oben gezeigte Webseite: <!DOC...

WeChat-Applet implementiert ein einfaches Würfelspiel

In diesem Artikel wird der spezifische Code des W...