2016-12-12 3 views
-3

Это мой HttpService.tsHTTP служба не работает

import { Injectable } from "@angular/core"; 
import { Http, Response } from "@angular/http"; 
import 'rxjs/add/operator/map'; 

@Injectable() 
export class HttpService { 
    constructor (private http: Http) {} 

    getData() { 
     return this.http.get('http://blog_api.org/v1/posts') 
      .map((response: Response) => response.json()); 
    } 
} 

Это мой app.component.ts

import { Component } from '@angular/core'; 
import { HttpService } from '../app/services/HttpService' 
@Component({ 
    selector: 'my-app', 
    template: `Hello`, 
}) 
export class AppComponent { 
    constructor (private httpService: HttpService) {}; 

    ngOnInit() { 
     this.httpService.getData() 
      .subscribe(
       data => console.log(data) 
      ) 
    } 
} 

Когда я работаю приложение, я получаю сообщение об ошибке:

EXCEPTION: No provider for HttpService!

+6

Всегда помните, чтобы Google сообщение об ошибке первого. Запрос для 'EXCEPTION: Нет провайдера для HttpService!' Будет загружать множество существующих вопросов. –

ответ

0

Вы должны указать HttpService в модели, которая загружает app.component.ts.

В вашем случае, когда вы используете app.component.ts, предоставьте http в app.module.ts. Что-то вроде:

import { HttpService } from '../app/services/HttpService' 

@NgModule({ 
    ... 
    providers: [ 
    ... 
    HttpService, 
    ] 
}) 
export class AppModule { } 
+0

Большое спасибо. – user3289505

0

Добавить

providers: [HttpService]

в @Component блоке

+2

Если вы это сделаете, вы получите множество экземпляров http. Я думаю, что лучше загрузить его в модуль верхнего уровня и обеспечить единый экземпляр. – vinagreti

+0

Большое вам спасибо. – user3289505

1

В вашем AppModule вы должны делать:

import {HttpService} from "..."; 
import {HttpModule} from "@angular/http"; 

@NgModule({ 
    bootstrap: [...], 
    imports: [HttpModule], 
    declarations: [...], 
    entryComponents: [...], 
    providers: [HttpService] 
}) 
export default class AppModule{} 
+0

Большое вам спасибо. – user3289505

Смежные вопросы