NgOnInit 在 angular2 中设置值

NgOnInit set value in angular2

我在为 ngOnInit() 函数中的变量设置值时遇到了一些问题。设置后我试图在控制台中查看变量,但我只收到 "undefined"。如何让它发挥作用?

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 );
}
}

您在这里遇到的问题是您正在调用 FemaleModelsService 的数据,但您也在分配您还没有的值。

Observable 和 Promises 是异步的,因此您必须等待它们的响应才能操纵它们返回给您的内容。正如 jonrsharpe 所解释的那样,您必须在回调中获取数据才能执行您要查找的操作。

试试这个:

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