Является ли Angular4 действительно двухсторонней привязкой данных? - PullRequest
0 голосов
/ 15 сентября 2018

Что я узнал об Angular2 / 4/5/6, так это то, что из-за [(ngModel)] в нем возможно двухстороннее связывание данных - точно так же, как в Angular1 через $ объем.

Теперь я наткнулся на этот веб-сайт, на котором четко указано, что двусторонняя привязка данных невозможна в Angular4. Я в замешательстве. Может кто-то действительно уточнить, возможно ли двухстороннее связывание данных или нет в Angular 2/4/5/6?

enter image description here

Ссылка: https://dzone.com/articles/understanding-output-and-eventemitter-in-angular

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

enter image description here

возможно ли двухстороннее связывание данных или нет в Angular 2/4/5/6?

Нет, это не [(ngModel)], это не двусторонняя привязка данных. Это просто синтаксический сахар для одновременной привязки событий и привязки свойств.

Чтобы узнать больше об этом

1. Do you really know what unidirectional data flow means in Angular

2. Change Detection Reinvented Victor Savkin
3. TWO-WAY DATA BINDING IN ANGULAR

0 голосов
/ 16 сентября 2018

Angular - это фреймворк javascript, и у javascript есть ограничения, которые не допускают реального двустороннего связывания данных.

Действительно, первый путь (от шаблона к переменной) стал возможен благодаря встроенному API javascript, который позволяет прослушиватьк событиям в полях ввода, но не существует таких событий, как события, генерируемые при изменении переменной, поэтому другой способ с javascript API невозможен.

Здесь идет изменение обнаружения ,Благодаря возможностям Zone.js, Angular «слушает» ваш код и запускает обнаружение изменений в следующих трех типах событий:

  • Событие пользователя на странице (щелчок, отправка, размытие и т. д.))
  • XMLHttpRequest завершен
  • Таймер (setTimeout или setInterval) вызвал некоторую функцию

При обнаружении изменений шаблон обновляется с каждой связанной переменной.

Вот так практически существует двусторонняя привязка данных.

И, кстати, [(ngModel)] является синтаксическим сахаром для [ngModel]="variable" (ngModelChange)="variable = $event": это два способа

...