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

constructor(private nodeService: NodeService) {}  

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


     console.log(this.nodes) 

Это мой компонент, где я получаю данные.Машинопись/Угловая 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

Таким образом, моя проблема в том, что i console.log (this.nodes [0]) в моем компоненте, я получаю undefined. Кажется, я не могу получить доступ к своим данным, как мне нужно. Есть предположения?

+0

Код асинхронный, посмотрите на ответ l, связанный с –

+0

Okey thanks will do! – Artulo

ответ

2

Замечание Пер Хуана, вам нужно переместить console.log в обратный вызов.

constructor(private nodeService: NodeService) {}  

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

Но на самом деле ваш код указывает, что вы не понимаете асинхронного характера этой службы. Читайте и понимайте ответ, с которым он связан.

+0

Я, вероятно, не знаю. Я сделаю шаг назад, чтобы больше узнать о вещах. Благодаря! – Artulo

+0

О да, как вы это понимаете, код, который я не понимаю? Вы имеете ввиду из-за того, что я не использую обратный вызов? – Artulo