Angular 2 -在控件初始化后添加验证器



我想知道如何将验证器添加到已经创建的formControl(这是用它自己的验证器创建的)。但是,让我们想象一下,在一段时间后,我想添加另一个(或者我有一个包含几个验证器的自定义控件),我想创建外部的Reactive表单,并将内部验证器添加到外部。

有可能吗?我没有找到任何信息(只有关于重置所有验证器的信息)。谢谢你的帮助!

  this.testForm = this.fb.group({
      testField: [{value: '', disabled: false}, [<any>Validators.required]]
    })
<form [formGroup]="testForm" novalidate>
  <custom_input>
    formControlName="testField"
    [outerFormControl]="testForm.controls.testField"
    </custom_input>

</form>

之后,我想在我的自定义控件中添加其他验证器。我怎么能做到呢?

custom_coontrol.ts

this.outerFormControl.push(Validators.maxLength(10));
@Component({
  selector: 'my-app',
  template: `
   <form [formGroup]="testForm" novalidate>
    <input type="text" formControlName="age">
   </form>
   <button (click)="addValidation()">Add validation</button>
   {{ testForm.valid | json }}
  `,
})
export class App {
  constructor(private fb: FormBuilder) {
     this.testForm = this.fb.group({
      age: [null, Validators.required]
    })
  }
  addValidation() {
    this.testForm.get('age').setValidators(Validators.maxLength(2));
  }
}

恰好

最新更新