How to communicate from parent component to the child component in Angular 9 ?
Angular makes the communication between components very easy. In this article, we will learn how to communicate from a parent component to the child component.
Approach:
- Let’s create two components:
- parent
- child
- In the parent component, declare the property that you want to receive in the child component, say ‘ParentId’.
- While including the child component inside the parent component, bind the ‘ParentId’ property to the child component using property binding.
<child [id] =
"parentid"
></child>
- Now in the child component import Input from @angular/core and create a property decorated by @input decorator to receive ‘ParentId’ from parent component. The name of property should be the same as used for binding the ‘ParentId’ property i.e ‘id’.
‘ParentId’ will be successfully received in the child component as ‘id’.
Example:
- In this example, we will create a property
'ParentId'
and receive it in the child component.
Let’s write the code for the parent component.import { Component } from
'@angular/core'
;
@Component({
selector:
'app-root'
,
// code for parent component view.
template:`
<div style=
"text-align: center;"
>
<h1>
parent component - {{parentid}}
</h1>
</div>
// Bind the ParentId to child component.
<child [id] =
"parentid"
></child>
`,
styleUrls: []
})
export class AppComponent {
// This property is to be sent to the child component.
parentid: number = 1;
}
- Now write the code for the child component
import { Component, OnInit, Input} from
'@angular/core'
;
@Component({
selector:
'child'
,
template: `
<div style=
"text-align: center;"
>
<h2>child component</h2>
// property successfully received from the parent component.
parent id is {{id}}
</div>
`,
styles: []
})
export class TestComponent implements OnInit {
// @input decorator used to fetch the
// property from the parent component.
@Input()
id: number;
ngOnInit(): void {
}
}
Output:
Please Login to comment...