получение пустых данных из массива в угловых - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь отобразить некоторые данные, используя datatable.У меня есть данные, хранящиеся в массиве, и я могу утешить эти значения после извлечения их, но когда я утешаю их в datatable, он показывает пустой массив.Как мне решить эту проблему?

component.ts

user_data:any= [];

constructor(private http:Http, private Authentication:AuthService) {}

getUsersFromServices():void{
this.Authentication.fetch_userdata().subscribe(
  (data) =>{ 
    this.user_data = data;  
    console.log(this.user_data); //able to console the values here
  },err =>{
    console.log(err);
  }
 )
}

dataTable(){
console.log(this.user_data); //getting an empty array here
this.dtOptions = {
  pagingType: 'full_numbers',
  pageLength: 4,
  columnDefs:[{
    targets:[0,1,2,3,4],
    orderable:false
  }],
  data:this.user_data,
  columns:[
    {
      title:'id',
      data:'user.id'
    },
    {
      title:'First Name',
      data:'user.first_name'
    },
    {
      title:'Last Name',
      data:'user.last_name'
    },
    {
      title:'Email',
      data:'user.email'
    },
    {
      title:'Role',
      data:'role'
    }
  ]
};
}


ngOnInit(): void {
this.getUsersFromServices();
this.dataTable();
}

data after fetching

data while consoling in the datatable

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Попробуйте это

console.log(this.user_data); //able to console the values here
this.dataTable();

Вызовите метод прослушивания вместо вызова в ngOnInit

0 голосов
/ 12 декабря 2018

Вам нужно вызвать функцию dataTable(), как только вы получите данные в вашей подписке, в противном случае вы пытаетесь получить доступ до получения данных из запроса, измените его следующим образом,

this.Authentication.fetch_userdata().subscribe(
  (data) =>{ 
    this.user_data = data;  
    console.log(this.user_data); //able to console the values here
    this.dataTable();
  },err =>{
    console.log(err);
  }
 )
}
...