Шаблон управляемых форм:
импортируется с помощью FormsModule
Формы, созданные с помощью директивы ngModel, могут быть протестированы только в сквозном тестировании, поскольку для этого требуется наличие DOM
Значение формы будет доступно в двух разных местах: модель представления, т.е. ngModel
Проверка формы, так как мы добавляем в поле все больше и больше тегов проверки или когда мы начинаем добавлять сложные проверки по полям, читаемость формы снижается
Реактивные формы:
Может обычно использоваться для крупномасштабных заявлений
сложная логика проверки на самом деле проще реализовать
импортируется с использованием ReactiveFormsModule
Значение формы будет доступно в двух разных местах: модель представления и FormGroup.
Простой в модульном тесте: мы можем сделать это, просто создав экземпляр класса, установив некоторые значения в элементах управления формы и выполнив утверждения в отношении глобального действительного состояния формы и состояния достоверности каждого элемента управления.
Использование Observables для реактивного программирования
Например: поле пароля и поле подтверждения пароля должны быть идентичны
Реактивный путь: нам просто нужно написать функцию и подключить ее к FormControl
Путь на основе шаблонов: нам нужно определить директиву и каким-то образом передать ей значение двух полей
https://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/