简体   繁体   English

如何使ajax从服务请求?

[英]How make ajax-request from service?

Please help fix service: 请帮助修复服务:

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;
  } 

}

component: 零件:

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());
  }

}

Console display follow errormessage: 控制台显示跟随错误消息:

ERROR in /home/kalinin/angular2/rurun/src/app/panel/panel.component.ts (31,10): Property 'subscribe' does not exist on type 'Object'. /home/kalinin/angular2/rurun/src/app/panel/panel.component.ts(31,10)中的错误:类型“对象”上不存在属性“订阅”。

In component modelDateBegin['epoc'] and modelDateBegin['epoc'] contains unix datestamp. 在组件中,modelDateBegin ['epoc']和modelDateBegin ['epoc']包含unix日期戳。

Address: 地址:

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

is return data in json-format. 是json格式的返回数据。

But console display errormessage... 但是控制台显示错误消息...

your getRecords should return a Observable not Object , only Observable can be subscribe not Object , try this 你的getRecords应该返回一个Observable而不是Object ,只有Observable可以订阅而不是Object,试试看

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;
  } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM