我如何将一个额外的对象添加到最初已从模板预订为可观察对象的集合中。因此,我在组件中有一个可观察的变量,然后我执行了一些http请求,并将该可观察对象设置为该服务请求,例如...
getCurrencyFromApi()
..然后在模板中,我使用异步管道订阅了该可观察项。
logs$: Observable<any>;
this.logs$ = this.service.getLogs(searchCriteria);
加载此数据后,可以使用一些功能来添加新日志,然后我希望将其保存到集合中以显示该新日志。我可以将新值推送到该可观察值并重新打开对其的订阅,还是需要在组件中手动订阅此值并在其中拥有集合,以便可以在组件中推送到它。提前致谢。
答案 0 :(得分:0)
this.service.getLogs
重播http呼叫是否可观察?如果是这样,您很不走运,因为HTTP可观察对象在执行后终止(除非您在其中使用管道share())。
如果我是你,我会将日志保存为单独的集合。在这种情况下,我可以自由地修改该集合,并且该集合将通过UI反映出来,而没有任何技巧。
我会做什么
this.logs:Array<Logs>; //declaration
this.service.getLogs(searchCriteria).subscribe(result=>logs=result); // execution in onInit
并按需添加日志
this.logs.push(newLog);