我想向表单添加自定义验证器,以防止 mat-step 切换到下一步。当我使用 FormGroups 时一切正常,但是当我必须使用 FormArray 时我无法实现验证。
我已经尝试了至少两种在表单初始化时分配验证器的变体:
statuses: this._formBuilder.array([this.createStatus()], defaultStatusValidator())
this.productionLineStatuses = this._formBuilder.group({statuses: this._formBuilder.array([this.createStatus()])},
{validator: defaultStatusValidator()});
但是这种尝试会导致错误(可能是在铸造验证器时):
TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at FormGroup.validate [as validator] (default-status.directive.ts:6)
at FormGroup._runValidator (forms.js:3438)
at FormGroup.updateValueAndValidity (forms.js:3399)
at new FormGroup (forms.js:4097)
at FormBuilder.group (forms.js:7578)
at CreateProductionLineComponent.ngOnInit (create-production-line.component.ts:31)
Run Code Online (Sandbox Code Playgroud)
在以下情况下不会抛出错误,但验证器也不起作用。这是我的其余代码和我的自定义验证器:
TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at FormGroup.validate [as validator] (default-status.directive.ts:6)
at FormGroup._runValidator (forms.js:3438)
at FormGroup.updateValueAndValidity (forms.js:3399)
at new FormGroup (forms.js:4097)
at …Run Code Online (Sandbox Code Playgroud)