page change angular

change - page title angular 4



EXCEPCIÓN angular: no hay proveedor para Http (16)

Agregue HttpModule a la matriz de importaciones en el archivo app.module.ts antes de usarlo.

import { HttpModule } from ''@angular/http''; @NgModule({ declarations: [ AppComponent, CarsComponent ], imports: [ BrowserModule, HttpModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }

Recibo la 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'' }) });


Con la versión Angular 2.0.0 del 14 de septiembre de 2016, todavía está utilizando HttpModule. Su app.module.ts principal se vería así:

import { HttpModule } from ''@angular/http''; @NgModule({ bootstrap: [ AppComponent ], declarations: [ AppComponent ], imports: [ BrowserModule, HttpModule, // ...more modules... ], providers: [ // ...providers... ] }) export class AppModule {}

Luego, en su app.ts , puede arrancar como tal:

import { platformBrowserDynamic } from ''@angular/platform-browser-dynamic''; import { AppModule } from ''./app/main/app.module''; platformBrowserDynamic().bootstrapModule(AppModule);


Desde rc.5 tienes que hacer algo como

@NgModule({ imports: [ BrowserModule], providers: [ HTTP_PROVIDERS ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export default class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);



Importe HttpModule en su archivo app.module.ts.

import { HttpModule } from ''@angular/http''; import { YourHttpTestService } from ''../services/httpTestService'';

También recuerde declarar HttpModule bajo importaciones como a continuación:

imports: [ BrowserModule, HttpModule ],


La mejor manera es cambiar el decorador de su componente agregando Http en la matriz de proveedores como se muestra a continuación.

@Component({ selector: ''greetings-ac-app2'', providers: [Http], templateUrl: ''app/greetings-ac2.html'', directives: [NgFor, NgModel, NgIf, FORM_DIRECTIVES], pipes: [] })


Me enfrenté a este problema en mi código. Solo pongo este código en mi app.module.ts.

import { HttpModule } from ''@angular/http''; @NgModule({ imports: [ BrowserModule, HttpModule ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }


Si tiene este error en sus pruebas, debe crear un servicio falso para todos los servicios:

Por ejemplo:

import { YourService1 } from ''@services/your1.service''; import { YourService2 } from ''@services/your2.service''; class FakeYour1Service { public getSomeData():any { return null; } } class FakeYour2Service { public getSomeData():any { return null; } }

Y en beforeEach:

beforeEach(async(() => { TestBed.configureTestingModule({ providers: [ Your1Service, Your2Service, { provide: Your1Service, useClass: FakeYour1Service }, { provide: Your2Service, useClass: FakeYour2Service } ] }).compileComponents(); // compile template and css }));


Solo agrego ambos en mi app.module.ts:

"import { HttpClientModule } from ''@angular/common/http'';

Y

import { HttpModule } from ''@angular/http'';"

Ahora funciona bien ... Y no olvides agregar

@NgModule => Imports:[] array


Solo incluya las siguientes bibliotecas:

import { HttpModule } from ''@angular/http''; import { YourHttpTestService } from ''../services/httpTestService'';

e incluya la clase http en la sección de providers , de la siguiente manera:

@Component({ selector: ''...'', templateUrl: ''./test.html'', providers: [YourHttpTestService]


Todo lo que necesita hacer es incluir las siguientes bibliotecas en el recorrido app.module.ts y también incluirlo en sus importaciones:

import { HttpModule } from ''@angular/http''; @NgModule({ imports: [ HttpModule ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }


a partir de RC5 necesita importar el HttpModule de esta manera:

import { HttpModule } from ''@angular/http'';

luego incluya el HttpModule en la matriz de importaciones como mencionó anteriormente Günter.


porque fue solo en la sección de comentarios, repito la respuesta de Eric:

Tuve que incluir HTTP_PROVIDERS


import { HttpModule } from ''@angular/http''; paquete en su archivo module.ts y agréguelo a sus importaciones.


> = Angular 4.3

para el HttpClientModule introducido

import { HttpClientModule } from ''@angular/common/http''; @NgModule({ imports: [ BrowserModule, FormsModule, // if used HttpClientModule, JsonpModule // if used ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }

Angular2> = RC.5

Importe HttpModule al módulo donde lo usa (aquí, por ejemplo, el AppModule :

import { HttpModule } from ''@angular/http''; @NgModule({ imports: [ BrowserModule, FormsModule, // if used HttpModule, JsonpModule // if used ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }

Importar el HttpModule es bastante similar a agregar HTTP_PROVIDERS en la versión anterior.


**

Almación simple: importe el HttpModule y HttpClientModule en su app.module.ts

** **

import { HttpClientModule } from ''@angular/common/http''; import { HttpModule } from ''@angular/http''; @NgModule({ declarations: [ AppComponent, videoComponent, tagDirective, ], imports: [ BrowserModule, routing, HttpClientModule, HttpModule ], providers: [ApiServices], bootstrap: [AppComponent] }) export class AppModule { }