角度式,反应式表单,Formarray无法反映失败的验证器

时间:2018-10-09 09:38:15

标签: angular customvalidator reactive-forms formarray

我在Angular 6应用程序上使用反应形式,其中包含(以及其他)关键字列表(formarray)。用户可以删除一个关键字,然后使用一个自定义验证程序来检查是否应至少包含1个关键字。

验证器会正确调用并起作用,但是:当我删除最后一个关键字时:关键字formarray出错并且变得无效。但是 projectform.keywords属性保持有效,因此表单也保持“有效”。 我究竟做错了什么。该无效状态又如何在projectform.keywords属性中变为活动状态,从而使窗体无效?当验证程序失败时,我需要表格变得无效...

我的代码:

projectForm: FormGroup;
keywords: FormArray;

ngOnInit() {
  this.buildKeywordsArray();
  this.projectForm = this.fb.group({
    name: [this.project.name, Validators.required],
    description: [this.project.description, Validators.required],
    keywords: this.keywords
  });
  this.projectForm.statusChanges.subscribe(() => this.updateErrorMessages());
}

buildKeywordsArray() {
    this.keywords =  this.fb.array(this.project.keywords, PojectValidators.atLeastOneKeyword);
}

0 个答案:

没有答案