Aller au contenu

form.getRawValue() vs form.value

Il existe deux façons de récupérer les données d’un formulaire Angular :

  • this.form.value
  • this.form.getRawValue()

Mais ils ont des comportements différents.

this.form.value retourne un objet avec les valeurs des champs du formulaire. Mais il y a un problème : il ne retourne pas les champs disabled. this.form.getRawValue(), lui, retourne bien les champs disabled.

@Component({})
export class MyComponent {
  form = new FormGroup({
    name: new FormControl('emeline'),
    email: new FormControl({ value: 'emeline@gmail.com', disabled: true }),
  });

  constructor() {
    console.log(this.form.value); // { name: 'emeline' } 👈 le champ disabled est exclu
    console.log(this.form.getRawValue()); // { name: '', email: 'emeline@gmail.com' }
  }
}

this.form.value exclus les champs disabled et il est rare que ces champs là ne nous intéressent pas. Utilisez plutôt son alternative this.form.getRawValue() qui vous affiche bien tous les champs de vos formulaires.