Este grupo de especialistas luego de algunos días de trabajo y recopilación de de datos, hemos dado con los datos necesarios, nuestro deseo es que resulte útil para ti en tu trabajo.
Solución:
Importante: HttpClientModule
es para Angular 4.3.0 y superior. Controlar @Maximus’ comentarios y @Pengyy’s responde para mas informacion.
Respuesta original:
necesitas inyectar HttpClient
en su componente/servicio no el módulo. si importas HttpClientModule
en tus @NgModule
// app.module.ts:
import NgModule from '@angular/core';
import BrowserModule from '@angular/platform-browser';
// Import HttpClientModule from @angular/common/http
import HttpClientModule from '@angular/common/http';
@NgModule(
imports: [
BrowserModule,
// Include it under 'imports' in your application module
// after BrowserModule.
HttpClientModule,
],
)
export class MyAppModule
Así que cambia
constructor(private httpClient: HttpModule)
a
constructor(private httpClient: HttpClient)
como está escrito en la documentación
Sin embargo, dado que importó el HttpModule
necesitas inyectar constructor(private httpClient: Http)
como @maximus indicado en los comentarios y @Pengyy en esta respuesta.
Y para obtener más información sobre las diferencias entre HttpModule
y HttpClientModule
revisa esta respuesta
Actualización importante:
HttpModule
y Http
de @angular/http
ha sido en desuso desde Angular V5debe de usar HttpClientModule
y HttpClient
de @angular/common/http
en su lugar, consulte REGISTRO DE CAMBIOS.
Para versión Angular anterior de **@4.3.0debe inyectar Http
de @angular/http
y HttpModule
es para importar en la importación de su NgModule array.
import HttpModule from '@angular/http';
@NgModule(
...
imports: [HttpModule]
)
Inyectar http
en el componente o servicio
import Http from '@angular/http';
constructor(private http: Http)
Para versión Angular después (incluir) 4.3.0puedes usar HttpClient
de @angular/common/http
en vez de Http
de @angular/http
. No olvides importar HttpClientModule
en tu NgModule
la importación array primero.
Consulte la respuesta de @echonax.
nota: ¡Esto es para @angular/http, no para @angular/common/http solicitado!
Solo importe de esta manera, FUNCIONA perfectamente:
// Import HttpModule from @angular/http
import HttpModule from '@angular/http';
@NgModule(
declarations: [
MyApp,
HelloIonicPage,
ItemDetailsPage,
ListPage
],
imports: [
BrowserModule,
HttpModule,
IonicModule.forRoot(MyApp),
],
bootstrap: [...],
entryComponents: [...],
providers: [... ]
)
y luego construyes el servicio.ts así:
constructor(private http: Http)
getmyClass(): Promise
return this.http.get(URL)
.toPromise()
.then(response => response.json().data as myClass[])
.catch(this.handleError);
Comentarios y calificaciones de la guía
Si estás contento con lo expuesto, puedes dejar una noticia acerca de qué te ha impresionado de esta sección.