Create a "top component" that acts as the root for all of the module's components. Add the custom HttpBackend provider to the top component's providers list rather than the module's providers. Recall that Angular creates a child injector for each component instance and populates the injector with the component's own providers.
When a child of this component asks for the HttpBackend service, Angular provides the local HttpBackend service, not the version provided in the application root injector. Child components make proper http requests no matter what other modules do to HttpBackend.
Be sure to create module components as children of this module's top component.
If we open source files for documentation of Hierarchical Dependency Injectors, we can see that ACarComponent, BCarComponent and CCarComponent creates three different instances of CarService, CarService2 and CarService3.
But how I can to get CarService from parent DI for child component BCarComponent if I have also provide CarService on module level?