angular-Forms patchValue and setValue

5097 ワード

参考:1.修正の道https://segmentfault.com/a/1190000009090037
setValueとpatchValueの違い:setValue:使用時にfrom controlごとに値を設定する必要があります.そうでなければ、ERROR Error: Must supply a value for form control with name: 'xxxxx' patchValue:パッチ適用と同様に、from controlごとに値を設定する必要はありません.
1つ1つのsetValueメソッドを使用できます.
//        setValue
 this.validateForm.get('note')!.setValue(value === 'male' ? 'Hi, man!' : 'Hi, lady!');
//                
  requiredChange(required: boolean): void {
     
    if (!required) {
     
      this.validateForm.get('nickname')!.clearValidators(); //      
      this.validateForm.get('nickname')!.markAsPristine();
    } else {
     
      this.validateForm.get('nickname')!.setValidators(Validators.required); //      
      this.validateForm.get('nickname')!.markAsDirty(); //   
    }
    this.validateForm.get('nickname')!.updateValueAndValidity(); //           
  }