我有一个 Angular 2形式,其中我必须在某些条件下作一个必填字段,例如:

description:  ['', Validators.required]

仅在某些类型的条件(例如:
if(true){descReq = true};

我该如何做到这一点,请提出建议。提前致谢!

最佳答案

您可以基于表单上另一个控件的值添加或删除验证器:

    testForm: FormGroup;

    constructor(private formBuilder: FormBuilder) {
      this.testForm = this.formBuilder.group({
        condition: [''],
        description: ['']
      });

      this.testForm.controls['condition'].valueChanges.subscribe(result => {
        if (result) {
          this.testForm.controls['description'].setValidators(Validators.required);
          this.testForm.controls['description'].updateValueAndValidity();
        } else {
          this.testForm.controls['description'].setValidators(null);
          this.testForm.controls['description'].updateValueAndValidity();
        }
      });
    }

10-08 19:04