Passer des data d'un composant enfant routé à un composant parent
Hello,
Nouveau cas de figure aujourd'hui ! comme dit dans le titre je veux envoyer une data d'enfant à parent. sur le coup, je suis parti sur un @Output. Le soucis c'est que le compo enfant est un élément routé représenté donc par
<router-outlet></router-outlet> dans le compo parent
En googlant quelques minutes, je m'aperçoiqsque apparament, on ne peut pas faire un truc du genre :
Code:
<router-outlet (monEvent)="faisUnTruc()"></router-outlet>
Du coup, je pars sur un subject...Erreur là encore, car la variable que je veux faire passer (un boolean) de l'enfant au parent conditionne le rendu de la vue parent. Du coup, je modifie la vue de mon parent après la détection de changement et ça fout le bazard, plus précisement, ça génère ceci : ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked....Bref, je m'en sors pas
Bon un peu de mauvais code à présent :
le ts compo enfant, je souhaite récupérer la variable "isTest" :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @Output testEvent: EventEmitter<boolean> = new EvenEmitter<boolean>();
ngOnInit(): void {
this.itemsMenu = this.rayonService.itemsMenu;
this.activatedRoute.paramMap.subscribe(params => {
let paramUrlZone = params.get('id');
if (paramUrlZone !== null) {
this.isTest = true; // comment passer au parent ?
this.testEvent.emit(this.isTest);
}
});
this.initRefForm();
} |
Le html
Code:
<router-outlet (testEvent)="faisUnTruc($event)"></router-outlet>
Bon merci, désolé pour la question galère