首页 > 解决方案 > 使用 Angular 8 在嵌套的 FormControl 对象上设置验证器

问题描述

如何在带有子对象的嵌套 FormControl 上设置验证器?下面的这个产品,实际上有成员:productId、productName、productDescription(来自下拉选择)我想设置验证器 productId > 4 。

this.editSharedForm = this.formBuilder.group({
   'customerName':[null,[Validators.maxLength(50)],
   'customerPhone': [null, [Validators.maxLength(10)]],
   'product': new FormControl('')

以下不起作用:

this.editSharedForm.get('product').get('productId').setValidators(Validators.min(5))

this.editSharedForm.get('product').value['productId'].setValidators(Validators.min(5))

错误是第一个的未定义错误,而不是第二个命令的函数。

标签: angulartypescriptangular8angular-reactive-forms

解决方案


你可以简单地使用

this.editSharedForm.get('product').setValidators(yourValidators)

然后打电话

this.editSharedForm.get('product').updateValueAndValidity()

为了运行新的验证器


推荐阅读