我正在找一种方法在observable stream
上使用loading bar component
?Angular 2:使用Observable流加载bar组件
我有一个component
,它使用async pipe
显示来自observable
的数据。这个Observable也可以处理数据,比如使用map。
目前我有这样的组件:
this.listData$ = this.http.get('/itemList')
.map(data => this.manipulate(data))
和模板:
{{listData$ | async}}
服务器可以为empty []
,'unavailable'
或项目的array
返回数据。
我怎样才能进入流并提供加载组件,在加载数据时显示加载栏,并在空或不可用时显示错误消息?沿着线的东西...
this.listData$ = this.http.get('/itemList')
//.something here??
.map(data => this.manipulate(data))
<loading-bar [data]='listData$' [noDataMsg]='"no data"' [errorMsg]='unavailable'>
{{listData$ | async}}
</loading-bar>
理想我想用async pipe
,以保持和我的组件不同意。但是,将Observable传递给加载条组件并在其中订阅,这使得2 http calls
...然后我需要。 share()
可观测...
什么方法做你们拿显示加载,没有任何数据,并与您的流错误信息?
其实你可以使用一些'loading'标志,并设置为true之前HTTP和假里面'地图',如果你想避免订阅。所以,你可以装听'loading'变量状态 – VadimB
您可以用'do'运营商,它可以让您无需使用地图添加一个操作,像'this.http.get(...)。做(负荷= FALSE)。 map(... => ...);' – Supamiu