1

已经三天了,我仍在寻找解决方案。

基本上我有一个类属性变量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());
  } 

我将不胜感激任何形式的帮助,谢谢。

4

0 回答 0