У меня есть две службы и компонент.
Сервис A:
@Injectable({
providedIn: 'root'
})
export class AService {
public propertyA = 'propertyA initial state';
constructor(){}
}
Сервис B:
@Injectable({
providedIn: 'root'
})
export class BService{
constructor(public _servciceA: ServiceA){}
}
Компонент A
export class AComponent implements OnInit {
constructor(public _servciceA: ServiceA, public _serviceB: ServiceB){}
ngOnInit() {
this._serviceB._servciceA.propertyA = 'propertyA of serviceA changed by serviceB';
console.log(this._servciceA.propertyA) // prints 'propertyA initial state'
}
}
Обе службы объявлены в разделе поставщиков app.module, поэтому я ожидал, что и AComponent, и BService имели один и тот же экземпляр AService, и изменения свойства propertyA в одном будут отражены в другом.
Это ожидаемое поведение или я что-то упустил?
Спасибо
EDIT:
Как сказал @benshabatnoan, ComponentA находится в модуле проекта библиотечного типа. Извините, что не сказал этого в данном примере.
- Две услуги находятся в основном проекте.
- AService внедряется в BService.
- AComponent находится в другом модуле в проекте типа библиотеки
- Обе услуги внедряются в компонент AC
Я хочу, чтобы AService, внедренный в AComponent, был таким же экземпляром, как внедренный в BService. Как мне это сделать?
Спасибо и извините за сумбур