Angular2 + поток данных:
В Angular данные могут перемещаться между моделью (класс компонента ts.file) и представлением (html компонента) следующими способами:
- От модели к виду.
- От взгляда к модели.
- Данные передаются в обоих направлениях, что также известно как двусторонняя привязка данных .
Синтаксис:
модель для просмотра:
<input type="text" [ngModel]="overRideRate">
Этот синтаксис также известен как привязка свойств . Теперь, если overRideRate
свойство поля ввода изменится, вид автоматически обновится. Однако, если представление обновляется, когда пользователь вводит число, overRideRate
свойство не обновляется.
вид на модель:
(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
Здесь происходит то, что запускается событие (в данном случае событие ввода, но может быть любое событие). Затем мы можем вызвать методы класса компонента или напрямую сохранить свойство в свойстве класса.
Двусторонняя привязка данных:
<input [(ngModel)]="overRideRate" type="text" >
Следующий синтаксис используется для двусторонней привязки данных. По сути, это синтаксический сахар для обоих:
- Привязка модели к просмотру.
- Привязка вида к модели
Теперь что-то меняется внутри нашего класса, это будет отражать наше представление (модель для просмотра), и всякий раз, когда пользователь изменяет ввод, модель будет обновляться (от представления к модели).
[ngModel]
- это только привязка свойств, а не двусторонняя привязка. Таким образом, ввод нового значения не будет обновлятьсяoverRideRate
.