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

时间:2018-05-08 13:53:16

标签: angular reactive

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

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

无法在字符串'input1'

上创建属性'validator'

以下四个涉及的文件如下:

parent.ts

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

parent.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>

1 个答案:

答案 0 :(得分:0)

在formBuilder中,input1,myNestedgroup和input2不是t correct the don t'需要''

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