Angular2 + przepływ danych:
W Angular dane mogą przepływać pomiędzy modelem (klasa komponentu ts.file) a widokiem (html komponentu) w następujący sposób:
- Od modelu do widoku.
- Od widoku do modelu.
- Dane przepływają w obu kierunkach, nazywane również dwukierunkowym wiązaniem danych .
Składnia:
model do obejrzenia:
<input type="text" [ngModel]="overRideRate">
Ta składnia jest również nazywana powiązaniem właściwości . Teraz, jeśli overRideRate
właściwość pola wejściowego zmieni się, widok zostanie automatycznie zaktualizowany. Jeśli jednak widok zostanie zaktualizowany, gdy użytkownik wprowadzi liczbę, overRideRate
właściwość nie zostanie zaktualizowana.
widok do modelu:
(input)="change($event)" // calling a method called change from the component class
(input)="overRideRate=$event.target.value" // on input save the new value in the title property
To, co się tutaj dzieje, to wyzwalanie zdarzenia (w tym przypadku zdarzenie wejściowe, ale może to być dowolne zdarzenie). Następnie możemy wywołać metody klasy komponentów lub bezpośrednio zapisać tę właściwość we właściwości klasy.
Dwukierunkowe wiązanie danych:
<input [(ngModel)]="overRideRate" type="text" >
Poniższa składnia jest używana do dwukierunkowego wiązania danych. Jest to w zasadzie cukier syntaktyczny dla obu:
- Powiązanie modelu do wyświetlenia.
- Powiązanie widoku z modelem
Teraz coś się zmienia w naszej klasie, co będzie odzwierciedlać nasz widok (model do widoku), a gdy użytkownik zmieni dane wejściowe, model zostanie zaktualizowany (widok na model).
[ngModel]
- jest to tylko wiązanie własności, a nie wiązanie dwukierunkowe. Zatem wprowadzenie nowej wartości nie zaktualizuje sięoverRideRate
.