Angular react 形式 : Cannot find control with path:

标签 angular angular-reactive-forms

我有组件:cabinet-clinic-form.component.ts 在这里,我在诊所 FormArray 中遇到 FormGroup 验证问题。当我呈现页面时出现错误 prntscr with error 我试图找到如何动态推送 formGroups 但仍然有错误。 单击按钮开始 onAddClinic() 事件,我添加了新诊所。

这是我的代码:

export class CabinetClinicFormComponent implements OnInit {
      doctorForm: FormGroup;
      ngOnInit() {
        this.doctorForm = new FormGroup({
          'clinics': new FormArray([]),
        });
      }
      onAddClinic() {
        const newClinic = new FormGroup({
            'city' : new FormControl(null),
            'clinicname' : new FormControl(null),
        });
        (<FormArray>this.doctorForm.get('clinics')).push(newClinic);
      }
      onSubmit() {
        console.log(this.doctorForm);
      }
    }

和 cabinet-clinic-form.component.html

<div
      class="clinic-group"
      formArrayName="clinics"
    >
      <div
        *ngFor="let clinicControl of doctorForm.get('clinics').controls; let clinicIndex = index;"
        [formGroupName]="clinicIndex"
      >
        <div class="clinic-group__title">Клиника #{{clinicIndex + 1}}</div>
        <div class="form-group">
          <label
            [attr.for]="'city' + clinicIndex + 1"
            class="control--label"
          >
            <span class="control--label-text">Город</span>
          </label>
          <input
            type="text"
            [attr.id]="'city' + clinicIndex + 1"
            [formControlName]="city"
            class="form-control"
          >
        </div>
        <div class="form-group">
          <label
            [attr.for]="'clinicname' + (clinicIndex + 1)"
            class="control--label"
          >
            <span class="control--label-text">Название клиники</span>
          </label>
          <input
            type="text"
            [attr.id]="'clinicname' + (clinicIndex + 1)"
            [formControlName]="clinicname"
            class="form-control"
          >
        </div>
      </div>
    </div>

    <button type="button" (click)="onAddClinic()">Добавить клинику</button>

最佳答案

[formGroupName]="clinicIndex + 1" 更改为 [formGroupName]="clinicIndex" 在索引 1 处没有控件

  <div
        *ngFor="let clinicControl of doctorForm.get('clinics').controls; let clinicIndex = index;"
        [formGroupName]="clinicIndex"
      >

关于 Angular react 形式 : Cannot find control with path:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48625998/

相关文章:

javascript - Angular:使用 NgIf 删除组件、内部表单和元素?

Angular react 形式 : Debounce only some specific Form Control

javascript - 动态添加一行 : Angular Reactive-Form

javascript - 如何将数组键索引映射到下拉列表表单控件中的其他键名称?

Angular Reactive Forms,formName.reset() 有效但抛出错误 'control.value is null' 并且所有字段都标记为 'red' 且无效?

javascript - 如果未定义则显示空值

angular - 访问 *ngFor 中的倒数第一项?

javascript - Angular - 将自定义验证器分配给 FormGroup

angular - 在 angular2 中如何获取新 @Angular/router 的 RouteParams - 似乎不存在

javascript - 如何将对象属性设置在不同的地方?