Я потерян здесь, у меня нет понятия, почему у меня эта ошибка:
Ионная 4
У меня есть сервис для всех моих остальных API-коммуникаций. http
в службе не определено, поэтому .post
завершится ошибкой. Так почему мой конструктор служб никогда не вызывается?
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'post'
of undefined
TypeError: Cannot read property 'post' of undefined
at Object.<anonymous> (http-service.service.ts:27)
...
HTTP-service.service.ts:
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
@Injectable()
export class HttpServiceService {
constructor(
private httpClient: HttpClient
) {
console.log('service'); // not called
}
async poster() {
console.log(this.httpClient); // undefined
this.httpClient
.post(this.backend_url, {/*params*/})
.subscribe(res => {});
}
}
app.module.ts
...
import {HttpClient} from '@angular/common/http';
import {HttpClientModule} from '@angular/common/http';
import {HttpServiceService} from './http-service.service';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [
BrowserModule,
HttpClientModule,
IonicModule.forRoot(),
IonicStorageModule.forRoot(),
AppRoutingModule,
],
providers: [
StatusBar,
SplashScreen,
HttpClient,
HttpServiceService,
{provide: RouteReuseStrategy, useClass: IonicRouteStrategy}
],
bootstrap: [AppComponent]
})
export class AppModule {
}
some.page.ts
import {HttpServiceService} from '../http-service.service';
...
constructor(private http: HttpServiceService) {...}
....
this.http.poster()
ОБНОВЛЕНИЕ (2019-03-21 17:50 (GMT)):
Уже пытался.
- удалить HttpClient из app.module.ts
- добавить @Injectable ({предоставлено: «root»})
- удалить HttpServiceService из app.module.ts
- частный http: http; импортировать {Http} из '@ angular / http'; (устарело между прочим)
Посмотрите на весь код: https://github.com/digital-scouts/Frontend/tree/dev/src/app
Мой http-сервис называется в loading.page.ts: 100
ОБНОВЛЕНИЕ КОНЕЦ