【问题标题】:Set Validators on Nested FormControl objects with Angular 8使用 Angular 8 在嵌套的 FormControl 对象上设置验证器
【发布时间】:2023-03-13 19:55:01
【问题描述】:

如何在带有子对象的嵌套 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))

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

【问题讨论】:

  • 你的控件名称是productproductId在哪里?
  • 也发布所有(子formGroup)结构!
  • 只需使用this.editSharedForm.get('product').setValidators(yourValidators),然后调用this.editSharedForm.get('product').updateValueAndValidity() 即可运行新的验证器。
  • 'product':this.formBuilder.group({productId:new FormControl(null)})
  • 嗨@AndreiGătej 随时回答,我可以发送积分,谢谢

标签: angular typescript angular8 angular-reactive-forms


【解决方案1】:

你可以简单地使用

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

然后调用

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

为了运行新的验证器

【讨论】:

    猜你喜欢
    • 2020-01-19
    • 2021-04-22
    • 2012-09-22
    • 2019-05-16
    • 1970-01-01
    • 2018-07-10
    • 2019-05-08
    • 2018-02-27
    相关资源
    最近更新 更多