I have simple custom service in Angular 5:
@Injectable()
export class RequestsMethods {
constructor(private http: HttpService) {
}
}
I tried to register this as provider in @NgModule({}):
providers: [
RequestsMethods,
FormRegister,
ErrorWatcher,
{
provide: HttpService,
useFactory: httpFactoryService,
deps: [Router, XHRBackend, RequestOptions]
}
],
Then in component I used:
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.css'],
providers: [RequestsMethods]
});
And component constructor:
constructor(private requestMethods: RequestsMethods){}
After compiling it gives me an error:
Error: StaticInjectorError(AppModule)[HttpService -> XHRBackend]:
StaticInjectorError(Platform: core)[HttpService -> XHRBackend]: NullInjectorError: No provider for XHRBackend! at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:1060) at resolveToken (core.js:1298) at tryResolveToken (core.js:1242) at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1139) at resolveToken (core.js:1298) at tryResolveToken (core.js:1242) at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1139) at resolveNgModuleDep (core.js:8374) at _callFactory (core.js:8442) at _createProviderInstance (core.js:8394)
If delete constructor from RequestsMethods
and register RequestsMethods
in providers it works fine