J'obtiens le EXCEPTION: No provider for Http!
dans mon application angulaire. Qu'est-ce que je fais 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
et ce qu'elle fait.Réponses:
Importez le HttpModule
Idéalement, vous divisez ce code en deux fichiers distincts. Pour plus d'informations, lisez:
la source
app.ts
.main.ts
.> = Angulaire 4,3
pour les introduits
HttpClientModule
Angulaire2> = RC.5
Importez
HttpModule
dans le module où vous l'utilisez (ici par exemple leAppModule
:L'importation du
HttpModule
est assez similaire à l'ajoutHTTP_PROVIDERS
dans la version précédente.la source
Avec la version Angular 2.0.0 du 14 septembre 2016, vous utilisez toujours HttpModule. Votre principal
app.module.ts
ressemblerait à ceci:Ensuite, dans votre,
app.ts
vous pouvez démarrer en tant que tel:la source
Ajoutez HttpModule au tableau des importations dans le fichier app.module.ts avant de l'utiliser.
la source
Depuis rc.5, vous devez faire quelque chose comme
la source
car ce n'est que dans la section commentaire que je répète la réponse d'Eric:
Je devais inclure
HTTP_PROVIDERS
la source
Importez
HttpModule
dans votre fichier app.module.ts.N'oubliez pas non plus de déclarer HttpModule sous les importations comme ci-dessous:
la source
La meilleure façon est de changer le décorateur de votre composant en ajoutant Http dans le tableau des fournisseurs comme ci-dessous.
la source
Http
objet pour chaque composant. Mieux vaut en avoir un seul pour l'application, ce qui est accompli en l'important auNgModule
niveau.à partir de RC5, vous devez importer le HttpModule comme ceci:
incluez ensuite le HttpModule dans le tableau des importations comme mentionné ci-dessus par Günter.
la source
Incluez simplement les bibliothèques suivantes:
et incluez la classe http dans la
providers
section, comme suit:la source
Si vous avez cette erreur dans vos tests, vous devez créer un faux service pour tous les services:
Par exemple:
Et avant chacun:
la source
**
la source
Tout ce que vous devez faire est d'inclure les bibliothèques suivantes dans tour app.module.ts et également de les inclure dans vos importations:
la source
J'ai rencontré ce problème dans mon code. J'ai seulement mis ce code dans mon app.module.ts.
la source
import { HttpModule } from '@angular/http';
package dans votre fichier module.ts et ajoutez-le dans vos importations.la source
Je viens d'ajouter ces deux dans mon app.module.ts:
&
Maintenant, ça marche bien .... Et n'oubliez pas d'ajouter le
@NgModule => Imports:[] array
la source