【发布时间】:2016-07-11 20:13:38
【问题描述】:
我有一个 Angular2 组件,其中一个变量设置为另一个服务中的另一个变量。如果不重新设置变量,我这辈子都无法更新它。
在我的 ngOnInit 组件中,我这样做:
ngOnInit(){
this.rooms = this.globals.filteredRooms;
}
在我的名为 AppGlobals 的 @injectable 中,我总是在做这样的事情:
applyFilters() {
this.filteredRooms = this.rooms.filter(r => this.campFilters.includes(r.camp));
}
当 appGlobals 中的 filteredRooms 变量发生变化时,我希望组件中的 rooms 变量随之变化。相反,我需要一次又一次地设置 this.rooms = this.globals.filteredRooms。
我已经尝试了一百万件事,例如尝试(可能失败)创建一个 Observable 并订阅它,尝试(但失败)将我的组件导入 appGlobals 以便我可以告诉组件在需要时更新其引用(在删除导入之前抛出非描述性错误),并查看是否需要执行某种 byRef 规范,以便创建对 globals.filteredRooms 的引用而不是复制它?
如果我需要将其更改为参考,那是如何完成的?如果需要的话,我将如何创建一个 Observable 并订阅它?或者……需要什么?
【问题讨论】:
标签: typescript angular pass-by-reference observable