Имам услуга ServiceA
, която има свои собствени състояния (променливи на екземпляри и т.н.) и в моя модул имам множество екземпляри на услуга ServiceA
.
@Injectable()
export class ServiceA {
// It defines instance variables.
}
Тъй като трябва да имам множество екземпляри на ServiceA
, не мога да го направя компонент на ниво модул.
В ComponentB
създайте екземпляр на ServiceA
и потенциално може да промени състоянието му:
@Component({
providers = [ServiceA],
})
export class ComponentB {
// changes the state of ServiceA.
}
Също така в HTML шаблона на ComponentB
имам маршрут до 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
? Благодаря!