родитель
<app-child #appChild (submit)="onSubmit($event)"></app-child>
<button (click)="goMessage()">send</button>
@ViewChild('appChild') appChild: ChildComponent;
/** вызов метода потомка */
goMessage() {
this.appChild.send('hello from parent');
}
/** реакция на событие из потомка */
onSubmit(event) {
// проверка данных, заполнение полей, whatever
}
потомок ChildComponent
@Output() submit = new EventEmitter<string>();
/** отправим полученную строку обратно наверх */
public send(message: string) {
this.submit.emit(message);
}
Так же можно отправить "события" через обычный @Input props скормив ему новый объект или рандомное число, т.е. чтобы значение пропса отличалось от предыдущего. И ловить изменения сеттером или в ngOnChanges