Визуализировать свойство объекта Observable в шаблоне Angular - PullRequest
0 голосов
/ 14 января 2019

У меня есть следующий компонент Angular 7:

export class PostComponent implements OnInit {

  post$: Observable<PostModel>;

  constructor(private postService: PostService) { }

  ngOnInit() {

    this.post$ = postService.getPostById(25);

  }

}

В шаблоне компонента я использовал следующее:

<p>Title: {{post$.title}}</p>

Заголовок пуст, и я думаю, это потому, что post $ является Observable.

При использовании массивов, например posts$: Observable<PostModel[]> Я передаю наблюдаемое в шаблон, и оно отлично работает, используя ngFor.

Но как мне это сделать в этом случае?

Наблюдаемый с массивом

При использовании Observable для массива в шаблоне HTML есть следующее:

<div *ngIf="(posts$ | async)?.length > 0; else loading">
  <ng-container *ngFor="let post of posts$ | async">
    {{post.title}}
  </ng-container>
</div>
<ng-template #loading>
  Loading ...
</ng-template>

Это позволяет мне показывать сообщение о загрузке во время загрузки.

1 Ответ

0 голосов
/ 14 января 2019

Вы должны будете использовать асинхронную трубу как:

<p>Title: {{(post$ | async).title}}</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...