【问题标题】:How to set Validation in a field of FormGroup inside another FormGroup?如何在另一个 FormGroup 内的 FormGroup 字段中设置验证?
【发布时间】:2019-11-23 20:27:53
【问题描述】:

我有一个用于两个 FormGroup 的 FormGroup 组合,我想动态设置验证,但我无法访问组件来设置它

我试过这个: this.formGroupFather.get('formGroupSon1').controls['componentA'].setValidators(XXXXX)

------------------------------------------ V2 ----- ---------------------

我有这样的结构:

<form [formGroup] = "configuracion" (ngSubmit)="onSubmit()">
  <div class="row" id="ConfigFacturacion">
    <!--  COL 1 -->
    <div class="col px-4">
      <form formGroupName="configPT">
         <input type="text" formControlName="prubA">
      </form>
    </div>

    <!--  COL 2 -->
    <div class="col px-4">
      <form formGroupName="configVS">
         <input type="text" formControlName="prubB">
      </form>
    </div>
  </div>
</form>

我可以使用一个简单的表单来创建动态验证器: this.formSimple.controls['field'].setValidators([Validators.required]);

但是如果我以我的 compiste 形式尝试这个: this.configuracion.get('configPT').controls['prubA'].setValidators([Validators.required]);

抛出这个错误: core.js:15723 错误类型错误:无法读取未定义的属性“setValidators”

【问题讨论】:

  • 能否请您添加您遇到的确切错误,或者更好地创建一个 stackblitz/jsfiddle 来显示您面临的问题?
  • 你有一个包含一些最少代码的示例 stackblitz 吗?
  • 我想这就是你要找的ViewChild
  • 另外,这两个表单组是两个不同组件的一部分吗?组件结构是什么样的?
  • 你能分享一些代码吗?

标签: angular validation formgroups


【解决方案1】:

我终于明白了:

this.configuracion.get('configPT').get('prubA').setValidators([Validators.required]);
this.configuracion.get('configPT').get('prubA').updateValueAndValidity();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    • 2018-09-11
    • 2019-05-17
    • 1970-01-01
    • 2017-11-09
    • 2019-04-15
    • 1970-01-01
    相关资源
    最近更新 更多