AngularFireDatabase.object()呼び出しからObservable結果からデータを抽出し、それを他のスコープで後で使用する属性に設定しようとしています。Typescript - Observableから属性にデータを設定する
export class QuizzEditComponent implements OnInit {
private quizzRef: any;
private quizzObject: any;
private key: string;
constructor(private router: ActivatedRoute, private database: AngularFireDatabase) {
this.key = this.router.snapshot.paramMap.get('id');
this.quizzRef = this.database.object(environment.firebase.databaseName+'/'+this.key);
this.quizzRef.valueChanges().forEach(line => {
this.quizzObject = line;
console.log(this.quizzObject); // this display the wanted object
});
console.log(this.quizzObject); // This display undefined
}
}
観測がオブジェクトであるため、for let line of this.quizzItem
が動作しないように私は別の反復を試してみました!
すべてのアイデア!
'this.quizzObject'が取得していません値が変わるまで設定してください... – user1859022
これは 'forEach'反復の中で設定されます!タイムアウト 'setTimeout(function(){console.log(this.quizzObject);}、1000)を追加しても' forEach'の外側では未定義です! – Moghreb
@Moghrebでは、変数 'this.quizzObject'が設定されたときに関数を呼び出すことを検討できます – edkeveked