繁体   English   中英

推送到角度的可观察变量

[英]push to observable variable in angular

我如何将一个额外的对象添加到最初已从模板预订到可观察对象的集合中。 所以我在组件中有一个可观察的变量,然后执行一些http请求,然后将可观察者设置为该服务请求,如下所示...

logs$: Observable<any>;

this.logs$ = this.service.getLogs(searchCriteria);

..然后在模板中,我使用异步管道订阅了这一可观察的内容。

<div *ngIf="logs$ | async as logs; else loading">

加载此数据后,有一些功能可用于添加新日志,然后我希望将其保存到集合后显示。 我可以将新值推送到该可观察值并重新打开对其的订阅,还是需要在组件中手动订阅此值并在其中拥有集合,以便可以在组件中推送到它。 提前致谢。

重现http呼叫的this.service.getLogs是否可观察? 如果是这样,您很不走运,因为HTTP可观察变量在执行后终止(除非您在其中使用管道share())。

如果您是我,我会将日志保留为单独的集合。 在这种情况下,我可以自由地修改该集合,并且该集合将通过UI反映出来而没有任何技巧。

我会怎么做

this.logs:Array<Logs>; //declaration
this.service.getLogs(searchCriteria).subscribe(result=>logs=result); // execution in onInit

并按需添加日志

this.logs.push(newLog);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM