web-dev-qa-db-ja.com

定数または読み取り専用プロパティであるため、 'value'に割り当てることができません。 Angular 6

FormControlを使用してMat入力に値を設定しようとしています

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

私のTs

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

上記のコードは正常に動作していますが、エラーが発生します

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

ここで何か不足していますか?

10
Abx

あなたがしようとしているように値を設定することはできません。 setValueメソッドまたはpatchValueメソッドを使用する必要があります。

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

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

FormControlの場合、これらは同じですが、これらのメソッドはFormGroupとは異なる動作をします。

14
rpeshkov

それは値を設定する方法ではありません。設定する正しい方法は setValue() または patchValue() を使用することです

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

手動で無効にするための問い合わせフォームに関しては、これは私のために機能しましたthis.contactForm.setErrors({ valid: false });

0