Moduli guidati da modelli:
importato utilizzando FormsModule
I moduli creati con la direttiva ngModel possono essere testati solo in un test end-to-end poiché ciò richiede la presenza di un DOM
Il valore del modulo sarebbe disponibile in due posizioni diverse: il modello di visualizzazione, ad esempio ngModel
Convalida del modulo, poiché aggiungiamo sempre più tag validatore a un campo o quando iniziamo ad aggiungere complesse convalide tra campi la leggibilità del modulo diminuisce
Forme reattive:
Può generalmente essere utilizzato per applicazioni su larga scala
la complessa logica di validazione è in realtà più semplice da implementare
importato utilizzando ReactiveFormsModule
Il valore del modulo sarebbe disponibile in due posizioni diverse: il modello di visualizzazione e il FormGroup
Test di facile unità: possiamo farlo semplicemente istanziando la classe, impostando alcuni valori nei controlli del modulo ed eseguendo asserzioni sullo stato valido globale del modulo e sullo stato di validità di ciascun controllo.
Uso di osservabili per la programmazione reattiva
Ad esempio: un campo password e un campo di conferma password devono essere identici
Modo reattivo: dobbiamo solo scrivere una funzione e collegarla a FormControl
Template-Driven Way: dobbiamo definire una direttiva e in qualche modo passarle il valore dei due campi
https://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/