将管道与* ngIf和Observables结合使用

时间:2019-02-03 22:49:30

标签: javascript angular typescript rxjs

尝试显示模板,直到可观察的帖子准备就绪:

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

    <div *ngIf="posts | async else loading">
    {{ posts | json }}
    </div>  

设置了“可观察”后,posts | json的呈现方式如下:

    { "_isScalar": false, "source": { "_isScalar": true, "value": [ { "title": "Simulating HTTP Requsts", "content": "This is off the hook!!" } ] }, "operator": { "delay": 3000, "scheduler": { "actions": [], "active": false } } }

我们如何获取它来渲染通常通过posts | async获得的值?

我尝试了posts | async | json,但先渲染null,然后3秒钟后渲染了值。

This is the stackblitz

1 个答案:

答案 0 :(得分:1)

尝试:

<div *ngIf="posts | async as postsSync; else loading">
    {{ postsSync| json }}
 </div>  

您基本上想将可观察对象的“未包装”值绑定到模板变量,可以通过这种方式完成。