Erro ao consumir uma api java no angular

Entendi, eu fiz essa mudança:
export class ProfissionalCreateComponent implements OnInit {

cursos: Disciplina[] = [{id: ‘’, nomeDisciplina: ‘’, professores:[]}];

cargos: Cargo[] = [{id: ‘’, nomeCargo: ‘’, professor:[] }];

turmas: Turma[] = [{id: ‘’, nomeTurma: ‘’, professor:[], aluno:[]}];

prof: Profissional = {
id: ‘’,
nome: ‘’,
nascimento: ‘’,
sexo: ‘’,
cpf: ‘’,
rg: ‘’,
telefone: ‘’,
disciplinas:[],
cargos: [],
turmas: []
}

Depois da mudança, quando tento selecionar um item retorna esse erro:

Parece que, em algum template, vc está tentando usar um number (cargo.id) de forma errada num ngFor.

Estou usando assim:

Selecione a Cargo
<mat-select [(value)]=“cargos” >
<mat-option *ngFor=“let cargo of cargos” value=“cargos.id”>{{cargo.nomeCargo}}

Segui alguns tutoriais que ensinavam semelhante a esse.

Segui sua dica e consegui resolver esse problema.
Muito obrigado!

1 curtida

Bacana. Só mais uma coisa. Parece que vc está usando as entidades para receber os valores no endpoint. Com o tempo, vc vai ver que isso não é uma boa prática, pois deixa seu código muito amarrado e difícil e fazer manutenção.

O melhor seria ter uma classe específica para receber esses dados, por exemplo:

public class CriarProfissionalCommand {
  private Long id;
  private String nome;
  // todos os outros campos
}

E, a partir dessa classe, vc iria montar as entidades para poder gravar no banco.

Entendi Lucas, obrigado pela dica. Eu sou iniciante na programação ainda tenho muito para aprender.rsrsrs…