Skip to main content

Nested Component - Passing Data to a Child Component


If you want to pass data to a nested component you have to use the @Import decorator. You can find this decorator at @angular/core

import { Input } from '@angular/core';

Now I show you how you can use this decorator.
In my example I want to pass a counter from a Shopping List to a Shopping Basket Component
In the end, the shopping basket should look like this:

The Shopping Basket shows the number of items in an array (Shopping List). Everytime we put an item in the basket we count the items in the array

this.counter = this.selectedProducts.length

Now we have to pass the counter to the ShoppingBasketComponent by using property binding

<app-shopping-basket [count]="counter"></app-shopping-basket>

After this we can use the input decorator at the child component
export class ShoppingBasketComponent implements OnInit {
@Input() countany

  constructor() { }

  ngOnInit() {
  }

}

And we can use it in the HTML
  <h2>{{count}}</h2>

Summary:

Passing data from a parent to a child component is very easy. You only use property binding at the parent component and the input decorator at the child component.




Comments

Popular posts from this blog

Download a file with Angular2+ and FileSaver.js

Why should your Angular code download a file? Of course your webserver can deliver files and you can just add a simple link to your website but what if the file is delivered by a webservice and the webservice requests authentication (i.e. OAuth) to protect the file from unauthorized access? In this case you might have the requirement to download the file in your code and then tell the browser to save it to the hard disk. How to do that?   First of all you need to add filesaver.js to your project.  npm install file-saver --save ..and add the typings npm install @types/file-saver --save-dev More information about filesaver you can find on the filesaver github pages . To download the file via http you need to implement a service. The following imports are required: import  {  Injectable  }  from   '@angular/core' ; import  {  Http ,  Response ,  RequestOptions ,  ResponseContentType  }  from   ...

How to implement a search field in Angular X that starts some action as soon as you stop typing

Everybody knows the Google search that displays some recommendations while you are typing. Some times when you are developing an application you might need a similar functionality for implementing a kind of free text search to quickly find results in a long list of data stored in a database that might be filtered and delivered by a webservice in the background.  The requirement: The search should happen without clicking a button but it should not start right after each single character you have typed. It should wait a short moment and after you have stopped typing immediately start the search. The implementation is quite simple and the same way you could do that in Javascript. First we need to prepare our template to have an input field in which the user can type in a search string.  Whenever the user types a character a function should be called. This is done with the keyup event. (keyup)="searchChanged($event)" In our component we have to defin...

Create a simple Messageboard with Firebase and Angular4

You want that your users can leave messages in your Angular Application. In this Article I explain how you can implement this with Angular 4 and Firebase. First we have to import the Moduls for Firebase in our app.module.ts and our component. app.module.ts import  {  AngularFireModule  }  from   'angularfire2' ; import  {  AngularFireDatabaseModule ,  AngularFireDatabase ,  FirebaseListObservable  }  from   'angularfire2/database' ; @ NgModule ({    declarations:  [      AppComponent   ],    imports:  [      BrowserModule ,      FormsModule ,      HttpModule ,      AngularFireModule . initializeApp ( firebaseConfig ),      AngularFireDatabaseModule , We also have to configure the AngularFireModule. export   const   fireba...