Formularze oparte na szablonach:
zaimportowane przy użyciu FormsModule
Formularze zbudowane za pomocą dyrektywy ngModel mogą być testowane tylko w ramach testu end-to-end, ponieważ wymaga to obecności DOM
Wartość formularza byłaby dostępna w dwóch różnych miejscach: model widoku, czyli ngModel
Walidacja formularza, gdy dodajemy coraz więcej tagów walidatora do pola lub gdy zaczynamy dodawać złożone walidacje między polami, czytelność formularza spada
Formularze reaktywne:
Może być ogólnie używany do zastosowań na dużą skalę
złożona logika walidacji jest w rzeczywistości prostsza do wdrożenia
importowane przy użyciu ReactiveFormsModule
Wartość formularza byłaby dostępna w dwóch różnych miejscach: modelu widoku i FormGroup
Łatwy do wykonania test jednostkowy: Możemy to zrobić, po prostu tworząc instancję klasy, ustawiając niektóre wartości w kontrolkach formularza i wykonując asercje względem globalnego stanu prawidłowego formularza i stanu ważności każdej kontrolki.
Wykorzystanie Observables do programowania reaktywnego
Na przykład: pole hasła i pole potwierdzenia hasła muszą być identyczne
Sposób reaktywny: wystarczy napisać funkcję i podłączyć ją do FormControl
Sposób oparty na szablonach: musimy zdefiniować dyrektywę i jakoś przekazać jej wartości dwóch pól
https://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/