Forms 如何在angular 6中从FormGroup重置特定控件

Forms 如何在angular 6中从FormGroup重置特定控件,forms,angular6,form-control,formgroups,Forms,Angular6,Form Control,Formgroups,我正在使用FormGroup在提交表单后从前端获取数据,通常。reset()该方法将重置控件中的所有值 1) 我的页面上有五个FormControls,但我只想重置4个选项,剩余的1个应使用其已选择的值禁用 2) 想要摆脱UI看起来像的红线(错误类): 到目前为止我尝试的内容(如果formControl名称为品牌,则禁用): ResetControls()方法: for (var name in this.form.controls) { if (name != 'brand'

我正在使用
FormGroup
在提交表单后从前端获取数据,通常
。reset()
该方法将重置控件中的所有值

1) 我的页面上有五个FormControls,但我只想重置4个选项,剩余的1个应使用其已选择的值禁用

2) 想要摆脱UI看起来像的红线(错误类):

到目前为止我尝试的内容(如果formControl名称为
品牌
,则禁用):

ResetControls()
方法:

  for (var name in this.form.controls) {
      if (name != 'brand') {
        this.form.reset();
        (<FormControl>this.form.controls[name]).setValidators(Validators.compose([]))
        this.form.controls[name].setErrors(null);
      }
      else
      {
       // var value = (<FormControl>this.form.controls[name]).value;
        (<FormControl>this.form.controls[name]).markAsPristine();
        (<FormControl>this.form.controls[name]).markAsUntouched();
       this.form.get('brand').disable();  

      }
    }

3) 重置所有选项,但无法为每个控件应用现有的必填字段。

您必须传入与表单中的表单控件匹配的状态映射

const form = new FormGroup({

first: new FormControl('first name'),
  last: new FormControl('last name')
});

form.reset({
  first: {value: 'name', disabled: true},
  last: 'last'
});

console.log(this.form.value);  // {first: 'name', last: 'last name'}
console.log(this.form.get('first').status);  // 'DISABLED'

您必须传入与表单中的表单控件匹配的状态映射

const form = new FormGroup({

first: new FormControl('first name'),
  last: new FormControl('last name')
});

form.reset({
  first: {value: 'name', disabled: true},
  last: 'last'
});

console.log(this.form.value);  // {first: 'name', last: 'last name'}
console.log(this.form.get('first').status);  // 'DISABLED'

如何防止重置firstName的值?可以重置特定的表单控件:
this.myForm.controls['lastName'].reset()如何防止重置firstName的值?可以重置特定的表单控件:
this.myForm.controls['lastName'].reset()