Estoy obteniendo el EXCEPTION: No provider for Http!
en mi aplicación Angular. ¿Qué estoy haciendo mal?
import {Http, Headers} from 'angular2/http';
import {Injectable} from 'angular2/core'
@Component({
selector: 'greetings-ac-app2',
providers: [],
templateUrl: 'app/greetings-ac2.html',
directives: [NgFor, NgModel, NgIf, FORM_DIRECTIVES],
pipes: []
})
export class GreetingsAcApp2 {
private str:any;
constructor(http: Http) {
this.str = {str:'test'};
http.post('http://localhost:18937/account/registeruiduser/',
JSON.stringify(this.str),
{
headers: new Headers({
'Content-Type': 'application/json'
})
});
HTTP_PROVIDERS
.HttpModule
y qué hace.Respuestas:
Importar el HttpModule
Idealmente, divide este código en dos archivos separados. Para más información lea:
fuente
app.ts
.main.ts
.> = Angular 4.3
para el introducido
HttpClientModule
Angular2> = RC.5
Importar
HttpModule
al módulo donde lo usa (aquí, por ejemplo, elAppModule
:Importar
HttpModule
es bastante similar a agregarHTTP_PROVIDERS
en la versión anterior.fuente
Con la versión Angular 2.0.0 del 14 de septiembre de 2016, todavía está utilizando HttpModule. Su principal
app.module.ts
se vería así:Luego, en su
app.ts
puede arrancar como tal:fuente
Agregue HttpModule a la matriz de importaciones en el archivo app.module.ts antes de usarlo.
fuente
Desde rc.5 tienes que hacer algo como
fuente
porque fue solo en la sección de comentarios, repito la respuesta de Eric:
Tuve que incluir
HTTP_PROVIDERS
fuente
Importar
HttpModule
en su archivo app.module.ts.También recuerde declarar HttpModule bajo importaciones como a continuación:
fuente
La mejor manera es cambiar el decorador de su componente agregando Http en la matriz de proveedores como se muestra a continuación.
fuente
Http
objeto para cada componente. Es mejor tener una sola para la aplicación, que se logra importándola en elNgModule
nivel.a partir de RC5 necesita importar el HttpModule de esta manera:
luego incluya el HttpModule en la matriz de importaciones como mencionó anteriormente Günter.
fuente
Solo incluya las siguientes bibliotecas:
e incluya la clase http en la
providers
sección, de la siguiente manera:fuente
Si tiene este error en sus pruebas, debe crear un servicio falso para todos los servicios:
Por ejemplo:
Y en beforeEach:
fuente
** **
fuente
Todo lo que necesita hacer es incluir las siguientes bibliotecas en el recorrido app.module.ts y también incluirlo en sus importaciones:
fuente
Me enfrenté a este problema en mi código. Solo pongo este código en mi app.module.ts.
fuente
import { HttpModule } from '@angular/http';
paquete en su archivo module.ts y agréguelo a sus importaciones.fuente
Solo agrego ambos en mi app.module.ts:
Y
Ahora funciona bien ... Y no olvides agregar
@NgModule => Imports:[] array
fuente