Reading official documentation of Angular
When the Angular router lazy-loads a module, it creates a new injector. This injector is a child of the root application injector. The router adds all of the providers from the root injector to the child injector. When the router creates a component within the lazy-loaded context, Angular prefers service instances created from these providers to the service instances of the application root injector.
Based on this I created a small app that has one service which is provided in App's root component. This service has a property which is bound to both lazy loaded component and eagerly loaded component. What I am expecting is, eagerly loaded component should use the service instance from old injector. Hence any changes in service's property by eager loaded component should not be reflected in lazy loaded component. Lazy loaded component should use the new service instance from child injector. But this doesn't happen. Can someone explain?