Sometimes app development requires you to send data into a component. This data can be used to customize a component or perhaps send information from a parent component to a child component.
Angular uses a concept called Input
. This is similar to props
in other frameworks. To create an Input
property, use the @Input
decorator.
In this activity, you'll learn how to use the @Input
decorator to send information to components.
To create an Input
property, add the @Input
decorator to a property of a component class:
user.component.ts
class UserComponent { @Input() occupation = '';}
When you are ready to pass in a value through an Input
, values can be set in templates using the attribute syntax. Here's an example:
app.component.ts
@Component({ ... template: `<app-user occupation="Angular Developer"></app-user>`})class AppComponent {}
Make sure you bind the property occupation
in your UserComponent
.
user.component.ts
@Component({ ... template: `<p>The user's occupation is {{occupation}}</p>`})
-
Define an
@Input
propertyUpdate the code in
user.component.ts
to define anInput
property on theUserComponent
calledname
. For now, set the initial value toempty string
. Be sure to update the template to interpolate thename
property at the end of the sentence. -
Pass a value to the
@Input
propertyUpdate the code in
app.component.ts
to send in thename
property with a value of"Simran"
.When the code has been successfully updated, the app will display
The user's name is Simran
.
While this is great, it is only one direction of the component communication. What if you want to send information and data to a parent component from a child component? Check out the next lesson to find out.
P.S. you are doing great - keep going 🎉