【发布时间】:2019-03-24 18:49:43
【问题描述】:
如何将一个额外的对象添加到最初订阅模板中的 observable 的集合中。所以我的组件中有一个变量,它是一个可观察的,然后我做了一些 http 请求并将可观察的设置为这个服务请求,就像这样......
logs$: Observable<any>;
this.logs$ = this.service.getLogs(searchCriteria);
.. 然后在模板中我使用异步管道订阅这个 observable。
<div *ngIf="logs$ | async as logs; else loading">
加载此数据后,有一些功能可以添加新日志,然后我想将此新日志推送到集合中,以便在保存后显示。我可以向这个 observable 推送一个新值并重新订阅它,还是我需要在组件中手动订阅它并将集合放在那里,然后我可以在组件中推送它。提前致谢。
【问题讨论】:
-
如果您将新值推送到
logs$,则无需重新订阅 observable -
this.service.getLogs是否可以返回 http 调用?如果是这样,那么您就不走运了,因为 http observable 在执行后会终止(除非您在其中使用 pipe share())