2017-07-02 49 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,请搜索任何可观察的示例 –