Essa é minha classe:
import { Component } from "@angular/core";
import { FormBuilder, FormGroup , Validators} from '@angular/forms';
import { Employee } from "src/app/ab-front/employee.interface";
import { HttpClient } from "@angular/common/http";
import { EmployeesService } from "src/app/ab-front/employees/employees.service";
import { OnInit } from "@angular/core";
import { FormControl } from "@angular/forms";
import { Input } from "@angular/core";
@Component({
selector: 'ab-employee',
templateUrl: 'employee.component.html',
styleUrls: ['employee.component.css']
})
export class EmployeeComponent implements OnInit {
formulario : FormGroup;
funcionarios: Employee [] = [];
@Input()
pieChartData = {
chartType: 'PieChart',
options: {'title': 'Dados do Pessoal',
pieHole:0.4,
chartArea: {
left:100,
top:50,
width: 400,
height: 300}
},
dataTable: this.populaChart()
};
populaChart(){
let titulo : string [] = ['Nome','Participacao'];
let linha = [];
for(let i = 0 ; i < this.funcionarios.length ; i++){
linha [i] = [this.funcionarios[i].nome + ' ' + this.funcionarios[i].sobrenome ,
this.funcionarios[i].participacao];
if(i < this.funcionarios.length){
linha [i] = linha [i] + ',';
}
}
console.log(this.funcionarios);
return [
titulo,
['Hugo Silva', 20],
['Eliza Souza', 20],
['Anderson Santos', 40]
];
}
constructor(private employeeService: EmployeesService,
private formBuilder : FormBuilder){ }
ngOnInit(){
this.formulario = this.formBuilder.group({
nome: ['',
[
Validators.required,
Validators.pattern('([A-Z])([a-z])+'),
Validators.minLength(2)
],
],
sobrenome: ['',
[
Validators.required,
Validators.pattern('([A-Z])([a-z])+'),
Validators.minLength(2)
]
],
participacao: ['',
[
Validators.required,
Validators.pattern('[0-9]+'),
Validators.minLength(1)
]
]
});
this.employeeService
.listEmployees()
.subscribe(employees => {
this.funcionarios = employees;
console.log(this.funcionarios);
});
}
}
Nela eu tenho a propriedade funcionarios. Quero popular ela com o que vem do Backend. No OnInit, eu consigo dar print:
console.log(this.funcionarios);
Mas onde eu tento popular com essa informação, para gerar um PieChart do google(método populaChart), essa informação é um array vazio.
É esse meu "causo"