Angular Dynami c Форма Наблюдаемое свойство ввода всегда null - PullRequest
1 голос
/ 04 апреля 2020

Я учу себя реактивным формам в Angular и застрял в соответствии с руководством Dynami c Forms .

В файле question.service.ts я добавил задержка возвращаемой наблюдаемой для имитации HTTP-запроса:

return of(questions.sort((a, b) => a.order - b.order)).pipe(delay(10));

Эта наблюдаемая передается компоненту app-dynamic-form в шаблоне app-root:

<app-dynamic-form [questions]="questions$ | async"></app-dynamic-form>

Но questions значение входного свойства всегда равно нулю.

ОШИБКА TypeError: Невозможно прочитать свойство 'forEach' из null в QuestionControlService.toFormGroup (question-control.service.ts: 19) в DynamicFormComponent.ngOnInitit (dynamici c -form.component.ts: 22)

Удаление .pipe(delay(10)) возвращает пример в рабочее состояние.

Может кто-нибудь объяснить, почему ввод questions свойство равно null?

См. StackBlitz для рабочего примера.

1 Ответ

1 голос
/ 04 апреля 2020

Вы получаете ошибку, потому что привязка входного свойства происходит асинхронно.

Попробуйте это:

    <div>
        <ng-container *ngIf="questions$ | async as questions">
         <app-dynamic-form [questions]="questions"></app-dynamic-form>
        </ng-container>
    </div>
...