Composant enfant TS
import { Component, OnInit, Input, Output } from '@angular/core';
import { EventEmitter } from 'events';
export class ChildComponent implements OnInit {
@Output() OpenScheduleCall = new EventEmitter<boolean>();
onLog() {
this.OpenScheduleCall.emit(false);
}
}
HTML du composant parent:
<div [(hidden)]="OpenScheduleCall">
// content
</div>
<app-schedule-call *ngIf="!!OpenScheduleCall" [prospectid]='prospectid' [(OpenScheduleCall)]="OpenScheduleCall"></app-schedule-call>
Je définis les valeurs dans le composant enfant mais les modifications ne se reflètent pas dans le composant parent
Juste Output
ne peut pas être dans la liaison de données bidirectionnelle. Ajouter également ()
à la fin de la fonction bornée.
(OpenScheduleCall)="YourFunctionInParent($event)"
Vous n'avez pas marqué OpenScheduleCall
comme entrée pour le composant enfant, donc vous devez d'abord le faire. Et pour réaliser une liaison bidirectionnelle avec de la banane dans la boîte, votre @Output
doit être le @Input
nom de variable, avec le suffixe Change
. Alors marquez d'abord la variable OpenScheduleCall
comme @Input
en enfant, puis changez le nom de @Output
variable:
export class ChildComponent implements OnInit {
@Input() OpenScheduleCall;
@Output() OpenScheduleCallChange = new EventEmitter<boolean>();
onLog() {
this.OpenScheduleCallChange.emit(false);
}
}
Vous avez maintenant une liaison bidirectionnelle:
[(OpenScheduleCall)]="OpenScheduleCall"