2017-08-26 2 views
1

Ich verstehe nicht, warum dieser Service nicht funktioniert? Ist es ein Problem mit Abhängigkeiten?Angular Uncaught Error: Kann nicht alle Parameter für Service

Service:

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

export class GetWeatherService { 

    constructor(private http: Http) {} 

    getWeather() { 
     return this.http.get(link); 
    } 
} 

und Komponente:

import { Component, OnInit } from '@angular/core'; 
import { GetWeatherService } from './get-weather.service'; 

@Component({ 
    selector: 'app-form', 
    templateUrl: './form.component.html', 
    styleUrls: ['./form.component.css'], 
    providers: [GetWeatherService] 
}) 
export class FormComponent implements OnInit { 

    constructor(public getWeather: GetWeatherService) {} 

    ngOnInit() { 
     this.getWeather.getWeather(); 
    } 
} 
+0

Hagners Antwort ist, was Sie brauchen, aber ich kann auch vorschlagen, den neuen HttpClient anstelle von 'Http' zu verwenden. Es hat eine Reihe von Verbesserungen :-) – diopside

Antwort

3

Sie benötigen Service injizierbare zu machen:

@Injectable() 
export class GetWeatherService { 
    //CODE 
} 
+0

Ich dachte, ich habe Injective Decorator hinzugefügt, wenn ich Abhängigkeit von diesem Service von einem anderen Dienst injizieren möchte. Danke vielmals. Es klappt. Schöne Grüße – Hubert

2

@Injectable() über Ihren Dienst hinzufügen, um es in Konstrukteuren injiziert werden zu lassen .

import { Http } from '@angular/http'; 
import { Injectable } from '@angular/core'; 

@Injectable() 
export class GetWeatherService { 

    constructor(private http: Http) {} 

    getWeather() { 
     return this.http.get(link); 
    } 
} 
Verwandte Themen