1. Pass Single Data from Parent to Child Component
Parent Component (TS)
import { Component } from '@angular/core';
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html' // Reference to the HTML file
})
export class ParentComponent {
public parentName = 'John'; // Data to pass
}
Parent Component (HTML)
<h1>Parent Component</h1>
<app-child [name]="parentName"></app-child> <!-- Passing single data -->
Child Component (TS)
import { Component, Input } from '@angular/core';
@Component({
selector: 'app-child',
templateUrl: './child.component.html' // Reference to the HTML file
})
export class ChildComponent {
@Input() name: string; // Receiving data
}
Child Component (HTML)
<h2>Child Component</h2>
<p>Name: {{ name }}</p>
2. Update Child Data from Parent Component
Parent Component (TS)
import { Component } from '@angular/core';
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html'
})
export class ParentComponent {
public parentName = 'John'; // Initial data
}
Parent Component (HTML)
<h1>Parent Component</h1>
<input [(ngModel)]="parentName" />
<app-child [name]="parentName"></app-child> <!-- Binding the updated value -->
Child Component (TS)
import { Component, Input } from '@angular/core';
@Component({
selector: 'app-child',
templateUrl: './child.component.html'
})
export class ChildComponent {
@Input() name: string; // Receiving updated data
}
Child Component (HTML)
<h2>Child Component</h2>
<p>Name: {{ name }}</p>
3. Pass Array from Parent to Child Component
Parent Component (TS)
import { Component } from '@angular/core';
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html'
})
export class ParentComponent {
public parentItems = ['Apple', 'Banana', 'Orange']; // Array to pass
}
Parent Component (HTML)
<h1>Parent Component</h1>
<app-child [items]="parentItems"></app-child> <!-- Passing array -->
Child Component (TS)
import { Component, Input } from '@angular/core';
@Component({
selector: 'app-child',
templateUrl: './child.component.html'
})
export class ChildComponent {
@Input() items: string[]; // Receiving array
}
Child Component (HTML)
<h2>Child Component</h2>
<ul>
<li *ngFor="let item of items">{{ item }}</li>
</ul>
4. Pass Object from Parent to Child Component
Parent Component (TS)
import { Component } from '@angular/core';
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html'
})
export class ParentComponent {
public parentPerson = { name: 'John', age: 30 }; // Object to pass
}
Parent Component (HTML)
<h1>Parent Component</h1>
<app-child [person]="parentPerson"></app-child> <!-- Passing object -->
Child Component (TS)
import { Component, Input } from '@angular/core';
@Component({
selector: 'app-child',
templateUrl: './child.component.html'
})
export class ChildComponent {
@Input() person: { name: string, age: number }; // Receiving object
}
Child Component (HTML)
<h2>Child Component</h2>
<p>Name: {{ person.name }}</p>
<p>Age: {{ person.age }}</p>
Summary:
- The Parent Component (TS) defines the data to be passed and binds it to the Child Component (TS) using the
@Input()
decorator. - The Parent Component (HTML) uses property binding (
[name]
,[items]
,[person]
) to pass data to the child. - The Child Component (HTML) receives and displays the data passed from the parent component.