2016-07-11 58 views
3

在main.ts不能在角2

import { HTTP_PROVIDERS } from '@angular/http'; 
import { AppComponent } from './app.component'; 

bootstrap(AppComponent,[HTTP_PROVIDERS]); 

在employee.service.ts

import { Injectable }  from '@angular/core'; 
import { Http, Response } from '@angular/http'; 
import {Employee} from '../classes/employee'; 
import { Observable }  from 'rxjs/Observable'; 

@Injectable() 
export class EmployeeService{ 
    constructor(private http: Http){ 
     this.http = http; 
    } 
} 

我看到HTTP爲未定義構造函數被調用即使讀取未定義的屬性 '得到'。

任何幫助,請...........

+0

我已經開始學習angular2。從幾天來,我花時間在這個問題上。任何幫助都會很好 –

+0

我的代碼中沒有看到任何錯誤,但是您還沒有發佈足夠的詳細信息以便我們提供幫助。例如,控制檯中的錯誤,您注入EmployeeService的代碼部分。 –

+0

謝謝丹尼爾。我忘記了**提供者:[EmployeeService] ** xyz.component.ts –

回答

1

這裏是工作http://plnkr.co/edit/ymvo2AmnkpyWvcnJLMKC?p=preview

首先,標記與@Injectable(服務),所以角運行時知道的,它應該是由DI負責。

@Injectable() 
export class EmployeeService{ 
    constructor(private http: Http){ 
     this.http = http; 
    } 
} 

第二,確保,你不要忘記引導HTTP_PROVIDERS到您的應用程序:

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

... 

bootstrap(AppComponent, [HTTP_PROVIDERS, EmployeeService]); 

https://angular.io/docs/ts/latest/guide/dependency-injection.html#!#injectable

+0

謝謝Petr。我這樣做,但沒有用.. –

+0

但我沒有看到您的EmployeeService –

+0

@Injectable()我沒有在帖子中添加。但它在我的代碼中。現在添加在帖子中:) :) –