已经三天了,我仍在寻找解决方案。
基本上我有一个类属性变量dataMapped
,它当然是一个数组
getAllPersonnel()
我在函数中填充它
getAllPersonnel(){
this.personnelService.getAllPersonnel().valueChanges().subscribe(
data => {
this.dataMapped = data ;
})
}
现在我想this.dataMapped
在函数外使用数组变量getAllPersonnel()
。
我试过这个:
ngOnInit() {
this.getAllPersonnel();
console.log(this.dataMapped); <== returns null
}
但我得到 未定义
所有这些的目的是我想填充一个角度材料mat-table
,我需要在构造函数内部而不是在 getAllPersonnel() 函数内部初始化数据源。
所以而不是这个:
getAllPersonnel(){
this.personnelService.getAllPersonnel().valueChanges().subscribe(
data => {
data.forEach(personnel => {
let personnelData :PersonnelData ;
personnelData = {
image:personnel.image ,
nom: personnel.nom,
prenom: personnel.prenom,
secteur: personnel.secteur,
note: personnel.note,
promotion: personnel.promotion
}
this.personnelDataArray.push(personnelData)
})
this.dataSource = new MatTableDataSource<PersonnelData>(this.personnelDataArray); <== i dont want the initialisation here
}
)
}
我希望该函数直接重新运行一个填充了订阅数据的数组,以便我可以在构造函数中使用它,如下所示:
constructor(private personnelService : PersonnelService) {
this.getAllPersonnel();
this.dataSource = new MatTableDataSource<PersonnelData>(this.getAllPersonnel());
}
我将不胜感激任何形式的帮助,谢谢。