2017-02-20 90 views
0
private nodes = []; 

constructor(private nodeService: NodeService) {}  

    this.nodeService.getNodes('APIUrl') 
      .subscribe((data) => { 
      this.nodes.push(data); 
     }); 


     console.log(this.nodes) 

這是我獲取數據的組件。Typescript/Angular 2

getNodes(url) { 
    return this.http.get(url) 
    .map((data) => data.json()) 
} 

這是我的服務,而我得到我的數據並將其映射

然而,當我在CONSOLE.LOG我的組件(this.nodes)這是我的結果:

[1: Array[0]] 

And it is possible to see the structure of my data as shown here

所以我的問題是當我的console.log(this.nodes [0])在我的組件中,我得到了未定義。我似乎無法訪問我的數據,因爲我需要。有什麼想法嗎?

+0

代碼是異步的,看看答案l鏈接到 –

+0

Okey謝謝! – Artulo

回答

2

根據Juan的評論,您需要將console.log移到回調中。

constructor(private nodeService: NodeService) {}  

    this.nodeService.getNodes('APIUrl') 
      .subscribe((data) => { 
      this.nodes.push(data); 
      console.log(this.nodes) 
     }); 

但實際上,您的代碼表明您不瞭解該服務的異步本質。請閱讀並理解他所鏈接的答案。

+0

我可能不會。我將退後一步閱讀更多內容。謝謝! – Artulo

+0

哦,是的,你是怎麼表示我不明白的代碼?你的意思是因爲我沒有利用回調? – Artulo