Я следовал этому ответу https://stackoverflow.com/a/38064881/3874858, чтобы реализовать возможность «Добавить больше» для моего приложения Angular 2. Проект, связанный с этим ответом, загружается на http://plnkr.co/edit/nHSIsciSZNTQzQjxkXsk?p=preview. К сожалению, начать этот проект, я должен прокомментировать эти строкиAngular 2 AbstractControl runtime
this.form.controls.payOffs.push(this.createPayOffFormGroup(po))
this.form.controls.payOffs.push(this.createPayOffFormGroup(emptyPayOff));
console.log("Added New Pay Off", this.form.controls.payOffs)
this.form.controls.payOffs.removeAt(index);
и типа «старт НПМ», а затем раскомментировать. Если я их не комментирую, я получаю следующие ошибки:
app/Components/companyInsertion.component.ts (37,28): ошибка TS2339: свойство 'payOffs' не существует в типе '{[key: string] : AbstractControl; }». app/Components/companyInsertion.component.ts (56,24): ошибка TS2339: свойство 'payOffs' не существует в типе '{[ключ: строка]: AbstractControl; }». app/Components/companyInsertion.component.ts (57,57): ошибка TS2339: свойство 'payOffs' не существует в типе '{[ключ: строка]: AbstractControl; }». app/Components/companyInsertion.component.ts (63,24): ошибка TS2339: свойство 'payOffs' не существует в типе '{[ключ: строка]: AbstractControl; }».
Итак, как я понимаю, этот код работает только во время выполнения. Я попытался это решение, но это не казалось, чтобы помочь: Issue with TypeScript compilation in Angular2 Forms путем изменения
this.form.controls.payOffs.push(this.createPayOffFormGroup(po))
Для
this.form.controls['payOffs'].value.push(this.createPayOffFormGroup(po))
Так что теперь я могу запустить приложение, но мне очень не нравится необходимость комментировать каждый раз, когда я запускаю сервер. Есть ли какие-либо решения?
Это работает, но это всего лишь обходной путь. Каково решение? – smartmouse