如何在Angular2中访问来自GET操作的json

时间:2017-08-16 13:07:23

标签: javascript angular typescript

我有一个允许我获取数据的方法

onGet() {
    this._httpService.getCurrent(this.model.user_email)
      .subscribe(
        data => this.getData = JSON.stringify(data),
        error => alert(error),
        () => console.log('Finished')
      );
  }

我收到一个Json,它给了我一个数字,就像 {current: '1', some_other_data: 'data1'}{current: '2', some_other_data: 'data1'}{current: '3', some_other_data: 'data1'}

我收到了数据,但我无法使用它。 我需要为我的路由器使用数据,例如(它当然没有工作,只是某种伪代码)

 goAhead() {
if(current = 1){
    this.router.navigate( ['page-1'] );
} else if (current = 2){
    this.router.navigate( ['page-2'] );
}
  }

在我的goAhead方法中,我看不到getData的新值,它是未定义的。 我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:0)

好的,假设您在组件中使用了goahead函数并调用了一个返回结果的服务,请将您的代码更改为以下

onGet() {
    this._httpService.getCurrent(this.model.user_email)
      .subscribe(
        data => this.getData = data.json();
        error => alert(error),
        () => console.log('Finished')
      );
  }

并且假设goahead函数在同一个组件中而不是数组,那么

 goAhead() {
if(this.getData.current == 1){
    this.router.navigate( ['page-1'] );
} else if (this.getData.current == 2){
    this.router.navigate( ['page-2'] );
}
  } 

应该做的伎俩