2016-08-23 5 views
0

Ich habe eine Frage über den Unterschied zwischen Angular 2 Zwei-Wege-und Einweg-Datenbindung. Wie ich es verstehe, wird eine unidirektionale Datenbindung für Daten verwendet, die von einem Elternteil zu einem Kind fließen. Handelt es sich bei der Quelle der Bindung jedoch um eine Referenz auf ein Objekt, werden die vom Kind vorgenommenen Änderungen auf der übergeordneten Ebene (über die Referenz) wiedergegeben. Wie unterscheidet sich das von der Zwei-Wege-Datenbindung? Oder missbrauche ich unidirektionale Bindung und sollte Zweiweg verwenden, wenn das Kind die Daten ändert?angular 2 Zwei-Wege-Datenbindung vs Einweg

Dank

Antwort

2

Zwei-Wege-Datenbindung zwischen View und Controller ist ...

In einfachen Worten

Two Way

  • im Hinblick auf vorgenommene Änderungen

    in Controller-widerspiegeln
  • Änderungen in Controll er reflektiert in Ansicht

One Way

  • Sobald Sie den Wert festgelegt wird es nicht die Ansicht oder Controller für weitere Änderungen betreffen
0

Sie beginnen mit einer Art und Weise Probleme haben Bindungen beim Binden an Sammlungen oder Objekte. Wie Sie bereits gesagt haben, projiziert eine Methode, die an eine Referenz bindet, nicht, das referenzierte Objekt zu modifizieren, da die Bindung nur flach ist und den Wert der Referenz widerspiegelt.

Die Lösung hierfür ist der Versuch, unveränderliche Typen zu verwenden. Da Änderungen an unveränderlichen Typen eine neue Referenz erzeugen, wird dies dazu führen, dass Bindungen jedes Mal aktualisiert werden, wenn sich Ihr Objekt ändert.

Es gibt eine Reihe von Möglichkeiten, dies zu acheive, von Ihren eigenen unveränderlichen Typen bauen, mit immutable-js oder versucht, den Flussmustern (oder mit so etwas wie redux)

zu folgen