Угловая - асинхронная труба - поведение шаблона

Я связываю наблюдаемое с моим шаблоном Angular и имею условное связывание, чтобы показать сообщение "loading..", пока асинхронный канал не разрешит данные.

Привязка работает нормально, и я получаю данные, и появляется сообщение "загрузка...", пока я не получу данные.

<div *ngIf=" (combinedResult$ | async )  as favData ;else  loading"> 
   <p> {{ Binding Goes here}} </p>
</div>

<ng-template #loading>
       loading...   
</ng-template>

но если я изменю *ngIf, обернув результат в объект "details:", тогда условие if не будет работать, и я не смог увидеть сообщение "loading..". (Но данные являются обязательными).

 <div *ngIf=" { details: (combinedResult$ | async ) } as favData  
   ;else  loading">

      <p> {{ Binding Goes here}} </p>

  </div>

Что мне здесь не хватает..?

1 ответ

Решение

В этом, *ngIf="{ details: (combinedResult$ | async ) } as favData; else loading"

{ details: (combinedResult$ | async ) } всегда оценивается как истина, поскольку это не условие, а присваивание.

Таким образом, он никогда не покажет загрузку, поскольку ngIf всегда оценивается как true

Другие вопросы по тегам