Olá,
Preciso pegar os valores alterados nos filhos para quando salvar o objeto os valores modificados nos filhos também sejam gravados corretamente.
Eu consigo preencher na tela os valores nos filhos quando ele já existem no objeto pai, mas se mudar qualquer coisa no filho não se reflete no pai para salvar.
Atualmente somente o valor modificado no pai é alterado e salva corretamente.
Abaixo criei uma pseudo estrutura do que estou fazendo, mas não está funcionando.
Gostaria de uma ajuda.
Eu tenho a seguinte estrutura.
ObjetoPai{
id: number;
comentario: string;
filhos: [
{
id: number;
comentario: string;
autor: string;
},
{
id: number;
comentario: string;
autor: string;
},
...
]
}
Então criei um componente PaiComponent e um FilhoComponent
[pai.component.ts]
...
@Component({
selector: 'app-pai',
templateUrl: './pai.component.html',
})
export class PaiComponent implements OnInit {
public pai: Pai = new Pai;
public attFilhos: Filho[] ;
ngOnInit() {
//GET OBJETO PAI e FILHOS se existirem
this.paiService.getPaiById(this.paiId).subscribe(
res => {
this.pai = res;
this.attFilhos = this.pai.Filhos;
},
(error)=> console.log(error)
);
}
}
[filho.component.ts]
...
@Component({
selector: 'app-filho',
templateUrl: './filho.component.html',
})
export class FilhoComponent implements OnInit {
@Input() filhos: Filho[];
E os html ficaram assim:
[pai.component.html]
...
<form (ngSubmit)="gravaRecurso($event)">
<label for="comentarioPai">Pai Comentario:</label>
<input [(ngModel)]="pai.comentario" type="text"
<app-filho (filhos)="attFilhos"></app-filho>
<button type="submit" class="btn btn-primary">Salvar</button>
</form>
[filho.component.html]
...
<div *ngFor="let filho of filhos">
<label for="comentariofilho">Filho Comentario:</label>
<input [(ngModel)]="filho.comentario" type="text"
<label for="autorfilho">Filho Autor:</label>
<input [(ngModel)]="filho.filho" type="text"
</div>
Já agradeço a todos pela atenção.