0
0
Angularframework~10 mins

Child to parent communication flow in Angular - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Child to parent communication flow
Child Component Event
Emit Event with Data
Parent Listens to Event
Parent Receives Data
Parent Updates State or Reacts
The child component sends data by emitting an event, which the parent listens to and uses to update its state or perform actions.
Execution Sample
Angular
/* Child Component */
import { Component, Output, EventEmitter } from '@angular/core';

@Component({
  selector: 'app-child',
  template: `<button (click)="sendNotification()">Notify Parent</button>`
})
export class ChildComponent {
  @Output() notify = new EventEmitter<string>();

  sendNotification() {
    this.notify.emit('Hello Parent');
  }
}

/* Parent Template */
<app-child (notify)="onNotify($event)"></app-child>

/* Parent Component */
import { Component } from '@angular/core';

@Component({
  selector: 'app-parent',
  template: `<app-child (notify)="onNotify($event)"></app-child>`
})
export class ParentComponent {
  onNotify(message: string) {
    console.log(message);
  }
}
Child emits a string event; parent listens and handles the event with a method.
Execution Table
StepActionComponentEvent/DataParent Reaction
1Child creates EventEmitterChildEventEmitter<string>No action yet
2Child calls emit('Hello Parent')Child'Hello Parent'Parent event handler triggered
3Parent receives event with dataParent'Hello Parent'Parent method onNotify called with data
4Parent updates state or UIParentN/AState updated or UI refreshed
5No further eventsChild & ParentN/AFlow ends
💡 No more events emitted; communication cycle completes.
Variable Tracker
VariableStartAfter Step 2After Step 3Final
notify (EventEmitter)CreatedEmitted 'Hello Parent'Event received by parentReady for next emit
parentDataundefinedundefined'Hello Parent''Hello Parent'
Key Moments - 3 Insights
How does the parent know when the child sends data?
The parent listens to the child's event using (notify) in the template, as shown in execution_table step 3.
What type of data can the child send to the parent?
The child can send any data type through the EventEmitter; here it sends a string 'Hello Parent' as in step 2.
Does the child directly change the parent's state?
No, the child only emits an event; the parent decides how to react and update its state, as in step 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what data does the child emit at step 2?
Aundefined
B'Hello Child'
C'Hello Parent'
Dnull
💡 Hint
Check the 'Event/Data' column at step 2 in the execution_table.
At which step does the parent receive the event from the child?
AStep 3
BStep 1
CStep 2
DStep 4
💡 Hint
Look for when the parent event handler is triggered in the execution_table.
If the child emits a number instead of a string, what changes in the execution table?
AThe parent reaction at step 4 will be skipped
BThe 'Event/Data' column at step 2 shows the number emitted
CThe parent will not receive the event
DThe EventEmitter will not be created
💡 Hint
Focus on the 'Event/Data' column at step 2 and how data is passed.
Concept Snapshot
Child to parent communication in Angular:
- Child defines @Output() EventEmitter
- Child emits event with data using emit()
- Parent listens with (eventName) in template
- Parent method receives data via $event
- Parent updates state or UI accordingly
Full Transcript
In Angular, child to parent communication happens by the child component emitting an event using an EventEmitter decorated with @Output. The parent listens to this event in its template using parentheses syntax, for example (notify). When the child calls emit with some data, the parent receives this data in the event handler method. The parent can then update its state or UI based on the received data. This flow ensures clear separation: the child only sends events, and the parent decides how to react. The execution table shows each step: creating the EventEmitter, emitting data, parent receiving it, and updating state. Variables like the EventEmitter and parent data change accordingly. Common confusions include how the parent listens, what data can be sent, and that the child does not directly change the parent's state. The visual quiz tests understanding of these steps and data flow.