2017-06-13 8 views
1

ngOnInit()関数の変数に値を設定する際に問題があります。私は設定後にコンソールで変数を見てみましたが、私は "undefined"しか受け取りませんでした。それを動作させるには?angular2のNgOnInit設定値

export class GalleryComponent implements OnInit { 

actualModelType: modelInterface[]; 
femaleModels: modelInterface[]; 

constructor(private _femaleModelsService: FemaleModelsService) { 
    this.actualModel = null; 
    this.clicked = false; 
} 

ngOnInit() { 
    this._femaleModelsService.getFemaleModels() 
     .subscribe(responseFemaleModelsData => this.femaleModels = responseFemaleModelsData); 


    this.actualModelType = this.femaleModels; 
    console.log(this.actualModelType, this.femaleModels); 
} 
} 
+0

サブスクリプションは、非同期*あり*、それは彼らの全体のポイントです。コールバック*内のデータ*にアクセスできます。 – jonrsharpe

+0

[角度2 - Observableから直接データを返す](https://stackoverflow.com/questions/37867020/angular-2-return-data-directly-from-an-observable) – jonrsharpe

答えて

1

ここで問題になっているのは、FemaleModelsServiceのデータを呼び出すことですが、まだ持っていない値を割り当てていることです。

オブザーバブルと約束は非同期であるため、返信内容を操作するためにレスポンスを待たなければなりません。 jonrsharpeで説明したように、あなたが探していることをするためには、コールバック内のデータを取得する必要があります。

ことは、これを試してみてください:

ngOnInit() { 
    this._femaleModelsService.getFemaleModels().subscribe(
     responseFemaleModelsData => { 
      this.femaleModels = responseFemaleModelsData; 
      this.actualModelType = this.femaleModels; 
      console.log(this.actualModelType, this.femaleModels); 
     } 
    ); 
} 
+0

ありがとうございますdosent work – Kamczatka

+0

コードを編集してみてください。それでも動作しない場合、私はあなたのコード(サービスコードと呼び出しているデータ)の詳細を必要とします – nvkfr

+0

それは動作します!ありがとう! – Kamczatka

関連する問題