可以从http请求中获取数据

时间:2018-03-18 07:40:28

标签: frontend angular2-http

我在接收数据变量时遇到问题。

这有效:

    this.http.get(some_url).subscribe(
        data => {
            console.log(JSON.parse(data['_body']))
    });

但如果我尝试将值传递给变量而不是打印它,它就不起作用:

    this.http.get(some_url).subscribe(
        data => {
            this.var = JSON.parse(data['_body'])
    });

我需要你的帮助,我尝试了一切。 谢谢!

1 个答案:

答案 0 :(得分:0)

这似乎不是一个有角度的问题。您可以尝试以下步骤进行调试吗?

  1. 在进行GET通话时检查控制台(F12)是否有任何错误
  2. 打印将返回的数据存储在变量
  3. 您尚未发布的变量分配行上方是否有任何行?
  4. 我已经创建了一个plunker,您可以在其中看到变量赋值 https://embed.plnkr.co/MEHTZ92HgZhEbUZlBELQ/

    app.component.ts如下

    import { Component } from '@angular/core';
    import { Http } from '@angular/http';
    
    @Component({
      selector: 'my-app',
      template: `
        <div>
          <p>Content: {{ content }}</p>
        </div>
      `,
    })
    export class AppComponent {
    
      content: string;
    
      constructor(private http: Http) {
       this.http.get('https://jsonplaceholder.typicode.com/posts/1').subscribe(
            data => {
                this.content = data
        });
      }
    
    }
    

    我得到的结果是

    Content: Response with status: 200 OK for URL: https://jsonplaceholder.typicode.com/posts/1
    

    当然,不应该使用构造函数进行网络调用和类似的重要内容,而应该使用ngOnInit代替,但仅仅是为了示例我在构造函数中进行了调用