Estou recebendo o EXCEPTION: No provider for Http!
aplicativo Angular. O que estou fazendo errado?
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
e o que faz.Respostas:
Importar o HttpModule
Idealmente, você divide esse código em dois arquivos separados. Para mais informações, leia:
fonte
app.ts
.main.ts
.> = Angular 4.3
para o introduzido
HttpClientModule
Angular2> = RC.5
Importe
HttpModule
para o módulo em que você o usa (aqui, por exemplo, oAppModule
:Importar o
HttpModule
é bem parecido com adicionarHTTP_PROVIDERS
na versão anterior.fonte
Com a versão Angular 2.0.0 de 14 de setembro de 2016, você ainda está usando o HttpModule. Seu principal
app.module.ts
seria algo parecido com isto:Então, no seu,
app.ts
você pode iniciar como tal:fonte
Adicione HttpModule à matriz de importações no arquivo app.module.ts antes de usá-lo.
fonte
Desde rc.5 você tem que fazer algo como
fonte
porque foi apenas na seção de comentários que repito a resposta de Eric:
Eu tive que incluir
HTTP_PROVIDERS
fonte
Importe
HttpModule
no seu arquivo app.module.ts.Lembre-se também de declarar HttpModule sob importações, como abaixo:
fonte
A melhor maneira é mudar o decorador do seu componente adicionando Http na matriz de fornecedores, conforme abaixo.
fonte
Http
objeto para cada componente. Melhor ter um único para o aplicativo, o que é conseguido importando-o noNgModule
nível.a partir do RC5, você precisa importar o HttpModule da seguinte forma:
inclua o HttpModule na matriz de importações, conforme mencionado acima por Günter.
fonte
Basta incluir as seguintes bibliotecas:
e inclua a classe http na
providers
seção, da seguinte maneira:fonte
Se você tiver esse erro em seus testes, deverá criar o Serviço Falsificado para todos os serviços:
Por exemplo:
E antes de cada:
fonte
**
fonte
Tudo o que você precisa fazer é incluir as seguintes bibliotecas no tour app.module.ts e incluí-lo em suas importações:
fonte
Eu enfrentei esse problema no meu código. Eu apenas coloquei esse código no meu app.module.ts.
fonte
import { HttpModule } from '@angular/http';
pacote no seu arquivo module.ts e adicione-o em suas importações.fonte
Acabei de adicionar ambos no meu app.module.ts:
&
Agora funciona bem ... E não se esqueça de adicionar o
@NgModule => Imports:[] array
fonte