Я пытаюсь обогатить этот очень хороший урок от Джо sh Хикс
https://medium.com/@joshblf / dynamici c -nested-реактивные-формы-в-angular -654c1d4a769a
путем добавления некоторых FormGroups и FormArrays, но в классе модели формы
export class TeamForm {
group1 = new FormGroup(new MyGroupForm(new MyGroup()));
constructor(team: Team) {
if (team.group1) {
this.group1.setValue(team.group1);
}
}
}
эта строка
group1 = new FormGroup(new MyGroupForm(new MyGroup()));
возвращает приведенную ниже ошибку
Argument of type 'MyGroupForm' is not assignable to parameter of type '{ [key: string]: AbstractControl; }'.
Index signature is missing in type 'MyGroupForm'.
Вот MyGroupForm
класс
import { FormControl, Validators } from "@angular/forms";
import { MyGroup } from "./mygroup.model";
export class MyGroupForm {
Input1 = new FormControl();
Input2 = new FormControl();
constructor(groupValue: MyGroup) {
this.Input1.setValue(groupValue.Input1);
this.Input1.setValidators([Validators.required]);
this.Input2.setValue(groupValue.Input2);
}
}
, а это MyGroup
класс
export class MyGroup {
Input1: string;
Input2: string;
constructor(value?) {
if (value) {
this.Input1 = value.Input1;
this.Input2 = value.Input2;
}
}
}
Тот же код в stackblitz, возвращает ту же ошибку в Редактор кода, но с хорошей сборкой!
Теперь вот странная вещь!
Если я заменим точку (.) в этом имени файла mycontrol-form.model.ts
на запятую (,) следующим образом: mycontrol-form,model.ts
ошибка исчезает. Но это только в stackblitz!
https://stackblitz.com/edit/form-nested-formarray-with-service
Очевидно, я делаю что-то не так, и я был бы очень признателен за небольшую помощь в этом вопросе ...