web-dev-qa-db-fra.com

Impossible d'affecter à «valeur» car il s'agit d'une propriété constante ou en lecture seule. Angular 6

J'essaie de définir une valeur pour une entrée Mat à l'aide de FormControl

<input name="contact" matInput [matAutocomplete]="contactAuto"  [formControl]="myControl" #contact (blur)="validateInput($event, contact.value)"  >

Dans mon Ts

myControl = new FormControl();
this.myControl.value = 'contact';

Le code ci-dessus fonctionne correctement mais j'obtiens une erreur

Cannot assign to 'value' because it is a constant or a read-only property

Est-ce que j'ai râté quelque chose?

9
Abx

Il n'est pas autorisé de définir une valeur comme vous essayez. Vous devez utiliser les méthodes setValue ou patchValue.

https://angular.io/api/forms/FormControl#setvalue

https://angular.io/api/forms/FormControl#patchvalue

Pour FormControl, ils sont identiques, mais ces méthodes fonctionnent différemment pour FormGroup.

9
rpeshkov

Ce n'est pas la façon de définir la valeur. La bonne façon de définir est d'utiliser setValue () ou patchValue ()

this.myControl.setValue('contact');
5
Amit Chigadani