Angular 5, Map an array of Objects within another array of Objects

0

Well I'm trying to encapsulate my objects. The first object it maps to the first JSON array.

export interface PraticarObject {

    id_assunto: number;
    nome_assunto: string;
    qt_exercicios_concluidos: string;
    conteudos: ConteudosPraticarArray[];
}

Good, that's fine, I can get the id_assemblies_name, qt_exercise, but when I try to get the contents.

It returns me like this

the class ContentsPracticeArray is like this.

export interface ConteudosPraticarArray {

 id_conteudo: string;
 nome_conteudo: string;
}

I'm using the Observable method in api to fill in the PraticarObject.

Well the problem is that it brings me the Object and I can not use it. :

    
asked by anonymous 27.06.2018 / 20:50

1 answer

0

For content to be of type ContentsPathArray [] ( conteudos: ConteudosPraticarArray[]; ), and the latter be an array of Objects, you need to access it as well as access the id_assunto of the PraticarObject Class for example.

Example:

export interface ConteudosPraticarArray {
    id_conteudo: string;
    nome_conteudo: string;
}
export interface PraticarObject {
    id_assunto: number;
    nome_assunto: string;
    qt_exercicios_concluidos: string;
    conteudos: ConteudosPraticarArray[];
}

To access the content name I should put:

/*Aqui abaixo, irei criar objetos para exemplificar, dependerá de como o seu código está*/
    var conteudo1 = new ConteudosPraticarArray (1,'Conteudo 1')
    var conteudo2 = new ConteudosPraticarArray (2,'Conteudo 2')
    var po = new PraticarObject(1,'Assunto Número 1', 15, [conteudo1,conteudo2])
/*AQUI A DEMONSTRAÇÃO DE COMO VOCÊ PODE RECEBER O VALOR "nome_conteudo" DOS CONTEÚDOS, E NÃO MAIS OBJETOS COMO ESTAVA ACONTECENDO*/
    console.log(po.conteudos[0].nome_conteudo) /*ESSA LINHA ME RETORNARÁ "Conteudo 1"*/
    console.log(po.conteudos[1].nome_conteudo) /*ESSA LINHA ME RETORNARÁ "Conteudo 2"*/
    
27.06.2018 / 21:12