Как узнать, загружается ли observable или есть ошибка в шаблоне Angular? - PullRequest
0 голосов
/ 01 октября 2019

Я довольно новичок в Angular. Итак, я столкнулся с такой проблемой. Я получаю данные из бэкенда по id. Позже я получаю наблюдаемое, передаваю его в шаблон. Использование async pipe разрешается, тогда я могу использовать значения в нем, иначе я показываю шаблон 404. Однако проблема в том, что я хочу добавить индикатор прогресса, но я не знаю, есть ли способ сделать это в шаблонах.

Конечно, я могу сделать это внутри файла .ts - подписаться на наблюдаемое и использовать пару флагов, но я хочу знать, могу ли я сделать это в файлах шаблонов.

По сути, я хочу знать, есть ли способ в файлах шаблонов узнать, загружается ли наблюдаемая или ошибка . Все примеры, которые я видел до сих пор, просто используют else для рендеринга чего-то еще. Что-то вроде гипотетического конструкции:

*ngIf="($obs | async) as obj; else if ($obs.loading) spinner; else 404"

1 Ответ

1 голос
/ 01 октября 2019

Пример загрузки:

<ng-container *ngIf="data$ | async; then data; else loading"></ng-container>
      <ng-template #loading>
      </ng-template>
      <ng-template #data>
      </ng-template>

Об ошибке Вам нужно обработать ее в component.ts, например this.obsItem.pipe(catchError(err => someCode...)

...