2017-02-14 9 views
1

に保管して応答だから私はAngular2角2のHTTP。配列

fetchData(){ 
    return this.http.get('https://ng-workout.firebaseio.com/Workouts/.json').map(
     (res) => res.json() 
    ); 
} 

でこのサービスを持っているし、このコンポーネント

export class HomeComponent { 

workouts = []; 

constructor(private dataService: DataService){ 
} 

ngOnInit(){ 
this.dataService.fetchData().subscribe(
    data=> this.workouts =data 
    ); 
    console.log(this.workouts); 
    } 
} 

だから事は、私がログコンソールとき、ある「this.workouts」は0を返し、空の配列。 jsonファイルのすべてのレコードは存在しないはずですか?

答えて

1

あなたは

ngOnInit(){ 
    this.dataService.fetchData().subscribe(
    data=> { 
     this.workouts =data; 
     console.log(this.workouts); 
    }); 
} 

fetchData(観測)は非同期です購読するに渡すコールバックにconsole.log()コードを移動する必要があります。購読するために渡す関数は、データが利用可能になったときに実行されます。

+0

私が別のページのワークアウトアレイで作業したいのであれば、アレイの情報が必要なときにいつでもサブスクライブを呼び出すことができますか? – raulnoob

+0

おそらくhttp://stackoverflow.com/questions/36271899/what-is-the-correct-way-to-share-the-result-of-an-angular-2-http-network-call-in/36291681# 36291681あなたが欲しいものです。 –