У меня есть данные в базе данных Firebase, эти данные я хочу применить к форме через FormBuilder
. Он работает несколько хорошо, но я чаще получаю ошибки, чем не говоря formGroup expects a FormGroup instance. Please pass one in.
.Angular 2 - Создание формы в подписке вызывает сбой, говорящий, что formGroup не определена
Что не имеет смысла, так это то, что когда я применяю новые изменения в базе данных, которые вызывают подписку, я получаю сообщение об ошибке. Несмотря на то, что this.settingsForm
устанавливается до и после запуска подписки после обновления.
Вот подписка:
this.eventSubscription = this.af.database.object('/events/' + this.eventId).subscribe(
(event: IEvent) => {
const rsvp: IRSVP = event.rsvp;
const settings: ISettings = event.settings;
const tickets: ITickets = event.tickets;
this.settingsForm = this.fb.group({
collaborators: this.fb.array(settings.collaborators || []),
isRSVPOpen: settings.isRSVPOpen,
isAutoApproveToGuestlist: settings.isAutoApproveToGuestlist,
rsvp: this.fb.group({
latestDate: [rsvp.latestDate, [Validators.required]],
latestTime: [rsvp.latestTime, [Validators.required]],
guestLimit: [rsvp.guestLimit, [Validators.required]],
isGuestPlusOne: rsvp.isGuestPlusOne,
isAutoApproveToGuestlist: rsvp.isAutoApproveToGuestlist,
isOnlyFacebookRSVP: rsvp.isOnlyFacebookRSVP,
isBirthdayAndPhoneRequired: rsvp.isBirthdayAndPhoneRequired
}),
tickets: this.fb.group({
info: this.fb.group({
closingDate: tickets.info.closingDate,
closingTime: tickets.info.closingTime
}),
types: this.fb.array(tickets.types || [])
})
});
}
);
Так что мне интересно, почему это происходит и как я могу это предотвратить? Не могу ли я создать форму следующим образом?