2017-07-02 24 views
0

請幫助修復服務:如何通過服務創建ajax請求?

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

@Injectable() 
export class RecordsService { 

    constructor(private http: Http){ } 

    getRecords(dateBeginUnix, dateEndUnix): Object { 
    console.log(dateBeginUnix, dateEndUnix); 
    let result = this.http.get('http://127.0.0.1:8000/days/' + dateBeginUnix + '/' + dateEndUnix); 
    console.log('result', result); 
    return result; 
    } 

} 

組件:

export class PanelComponent implements OnInit { 

    constructor(private recordsService: RecordsService) { } 

    private modelDateBegin: Object; 
    private modelDateEnd: Object; 
    private records: Object; 
    private data: Object; 

    displayStatistic() { 
    this.recordsService 
     .getRecords(this.modelDateBegin['epoc'], this.modelDateBegin['epoc']) 
     .subscribe((data: Response) => this.records = data.json()); 
    } 

} 

控制檯顯示如下的ErrorMessage:

錯誤在/ home /加裏寧/ angular2/rurun/src目錄/應用/面板/panel.component.ts (31,10):屬性'subscribe'在類型'Object'上不存在。

在組件modelDateBegin ['epoc']和modelDateBegin ['epoc']包含unix日期戳。

地址:

'http://127.0.0.1:8000/days/' + dateBeginUnix + '/' + dateEndUnix 

是JSON格式返回數據。

但是控制檯顯示errormessage的...

+0

更改對象的返回類型可觀察 Sreemat

回答

0

您getRecords應該返回一個ObservableObject,唯一可觀測可認購不反對,試試這個

getRecords(dateBeginUnix, dateEndUnix): Observable<any>{ 
    console.log(dateBeginUnix, dateEndUnix); 
    let result = this.http.get('http://127.0.0.1:8000/days/' + dateBeginUnix + '/' + dateEndUnix); 
    console.log('result', result); 
    return result; 
    } 
+0

謝謝,但控制檯顯示:' /home/kalinin/angular2/rurun/src/app/records.service.ts(9,43):找不到名稱'Observable'。'' –

+0

您必須從'rx'導入Observable,請搜索任何可觀察的示例 –