我有一個服務ServiceA
,它有自己的狀態(實例變量等),在我的模塊中我有多個服務實例ServiceA
。Angular 2:如何在不同路由上共享非模塊級服務
@Injectable()
export class ServiceA {
// It defines instance variables.
}
因爲我需要的ServiceA
多個實例,我不能讓它模塊級組件。
在ComponentB
實例化一個ServiceA
實例,並有可能改變它的狀態:
@Component({
providers = [ServiceA],
})
export class ComponentB {
// changes the state of ServiceA.
}
另外在ComponentB
HTML模板我有一個路線ComponentC
,需要訪問同ServiceA
實例:
<a routerLink="/path_to_component_c"></a>
這裏是ComponentC
的定義:
@Component({
providers = [],
})
export class ComponentC {
// accesses ServiceA.
}
如果ServiceA
是一個模塊級組件,不會有問題在ComponentB
和ComponentC
之間共享,因爲它們都在同一個模塊中。但是,由於ServiceA
直接注入ComponentB
,我無法再這樣做。請注意,每次只有一個ComponentC
將被創建,ComponentC
被創建後ComponentB
。
有沒有辦法在ComponentB
和ComponentC
之間共享數據?謝謝!