【问题标题】:Cannot create property 'validator' on string 'input1'无法在字符串“input1”上创建属性“验证器”
【发布时间】:2018-05-08 21:59:23
【问题描述】:

因此,我不想在同一个组件中使用嵌套的 formGroup,而是希望有一个可以集成到父组件中的子组件。 是否应该将来自子级的控件添加到父级的 FormBuilder 中?如何?我确实希望在 FormBuilder 组定义中包含整个模型,包括子字段。

我在 FormBuilder 中添加了来自子级的控件(如下所示,如果它们已在父级中定义),但出现错误:

无法在字符串“input1”上创建属性“validator”

涉及的四个文件如下:

父.ts

this.myForm = formBuilder.group({
       'input1': [null, [Validators.required, Validators.minLength(3)]],
        'myNestedGroup': this.formBuilder.group({
        'input2': [{ value: '', disabled: false }]      ///? correct
      })
    }
  );

父.html

<child-selector>
</child-selector>

child.ts

import { Component, OnInit, Input } from '@angular/core';
import { FormGroup, AbstractControl, FormBuilder, Validators } from '@angular/forms';

@Component({
  selector: 'child-selector',
  templateUrl: './child-selector.html'
})
export class ChildComponent implements OnInit {

  myInput = 'input2';
  formGroup = 'myNestedGroup';

  constructor() { }

  ngOnInit() {
  }

}

child.html

<div [formGroup]="formGroup" >
    <input type="text" [formControl] = "myInput" />
</div>

【问题讨论】:

    标签: angular reactive


    【解决方案1】:

    formBuilder 中的 input1、myNestedgroup 和 input2 aret correct the dont 需要 ''

    this.myForm = formBuilder.group({
               input1: [null, [Validators.required,  Validators.minLength(3)]],
                myNestedGroup: this.formBuilder.group({
                input2: [{ value: '', disabled: false }]      ///? correct
              })
            }
          );
    

    【讨论】:

    • 感谢 Tiago,但我仍然遇到同样的问题
    • 你能提供一个stackbliz吗?
    • 发现问题稍后会发布解决方案,以防其他人遇到相同问题
    • @annepic 有什么解决办法?我遇到了同样的问题
    猜你喜欢
    • 2023-04-01
    • 2017-09-22
    • 2018-12-08
    • 1970-01-01
    • 2022-01-25
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    相关资源
    最近更新 更多