3 回答

TA貢獻1789條經(jīng)驗 獲得超8個贊
Günters的回答很好,我只想指出另一種不使用Observables的方式。
在這里,盡管我們必須記住這些對象是通過引用傳遞的,所以如果您想對子對象中的對象做一些工作而不影響父對象,我建議使用Günther解決方案。但是,如果這無關(guān)緊要,或者實際上是期望的行為,我將建議以下內(nèi)容。
@Injectable()
export class SharedService {
sharedNode = {
// properties
};
}
在您的父母中,您可以分配值:
this.sharedService.sharedNode = this.node;
并在您的孩子(和父母)中,將共享服務(wù)注入到您的構(gòu)造函數(shù)中。如果要在該模塊中的所有組件上使用單例服務(wù),請記住在模塊級別的提供程序數(shù)組中提供服務(wù)。另外,只需添加服務(wù)父的供應(yīng)商陣列中只,那么家長和孩子將共享相同的服務(wù)實例。
node: Node;
ngOnInit() {
this.node = this.sharedService.sharedNode;
}
正如紐曼所指出的,您還可以this.sharedService.sharedNode在html模板中或使用getter:
get sharedNode(){
return this.sharedService.sharedNode;
}
- 3 回答
- 0 關(guān)注
- 1042 瀏覽
添加回答
舉報