Ich mache eine Angular 2 Web App. Ich habe ein Modell, das aus einigen Schlüsseleigenschaften besteht, und dann einigen anderen Eigenschaften, die basierend auf diesen Schlüsselwerten berechnet werden.
Alle meine Eigenschaften haben Getter-Methoden. Um meine berechneten Eigenschaften mit meinen Schlüsseleigenschaften synchron zu halten, werden die Schlüsseleigenschaften über Setter-Methoden geändert, die alle berechneten Eigenschaften neu bewerten. Hier ist ein vereinfachtes Beispiel:
%Vor%Dadurch bleibt mein Modell konsistent: Jedes Mal, wenn eine der Schlüsseleigenschaften geändert wird, werden alle berechneten Eigenschaften neu berechnet.
Jetzt muss ich herausfinden, wie ich meine Eigenschaften an meine Komponentenansichten binden kann. Es scheint, als könnte ich die berechneten Eigenschaften-Getter mit Interpolation darstellen:
%Vor%Ich bin mir jedoch nicht sicher, wie ich meine Schlüsseleigenschaften am besten an Eingabefelder binden könnte. Alle Beispiele für die Verwendung einer bidirektionalen Bindung scheinen ngModel wie folgt zu verwenden:
%Vor%Dies scheint jedoch auf die Bindung an einfache Eigenschaften ausgerichtet zu sein. Ich brauche idealerweise bidirektionale Bindung mit meinen separaten Getter- und Setter-Methoden (getKeyValue und setKeyValue).
Gibt es einen eingebauten Weg, um dies in Angular 2 zu erreichen?
Sie müssen dieses längere Formular verwenden
%Vor%Sie sollten wissen, dass die Methoden getXxx () jedes Mal aufgerufen werden, wenn die Änderungserkennung ausgeführt wird, was sehr häufig sein kann. Stellen Sie sicher, dass die Getter denselben Wert zurückgeben (insbesondere für Objekte derselben Instanz), und stellen Sie sicher, dass die Getter keine Nebenwirkungen haben. Andernfalls erhalten Sie die Fehlermeldung "Ausdruck wurde geändert, seit es zuletzt überprüft wurde ...".
Tags und Links angular typescript