已经三天了,我仍在寻找解决方案。
基本上我有一个类属性变量dataMapped
,它将当然是一个数组
我在getAllPersonnel()
函数中填充了它
getAllPersonnel(){
this.personnelService.getAllPersonnel().valueChanges().subscribe(
data => {
this.dataMapped = data ;
})
}
现在我想在this.dataMapped
函数之外使用数组变量getAllPersonnel()
。
我尝试过这个:
ngOnInit() {
this.getAllPersonnel();
console.log(this.dataMapped); <== returns null
}
但是我明白了 Undefined
所有这些操作的目的是我想填充有角度的材料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());
}
我要感谢任何帮助的人。