Creé una directiva que usa el componente como plantilla. Ambos utilizan el mismo servicio incluido en los proveedores:
@Component({ selector: 'my-component', providers: [MyService], .. } @Directive({ selector: '[myDirective]', providers: [MyService] })Ahora aquí está el problema. Usan el mismo servicio, pero mientras uno está cambiando el servidor, la directiva que se ha registrado para su cambio no recibió el cambio en absoluto:
this.myService.dataUpdated.subscribe ( (data: someObject) => { // Do something... } )Me parece que no están usando el mismo servicio en absoluto.
No veo una razón por la que singleton no deba usarse para su escenario. Me parece que singleton debería usarse en su caso, es por eso que no ve los cambios en absoluto.
Intenta proporcionar tu servicio en tu NgModule así
@NgModule({ ... providers: [MyService] ...Espero que esto ayude.