ngFor
In this quick example with Angular 10, let’s see how to build an HTML table with Angular and the ngFor
directive.
Let’s assume you already have Angular CLI 10 installed on your machine and an Angular 10 project ready.
You can do this example in two steps:
ngFor
Before we can use Angular ngFor
for displaying data in a table, we need the data. In a real-world example, we’ll need to get data from a server database.
This is better done using an Angular 10 service and the HttpClient
API, so let’s suppose we have the following service:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class ApiService {
private apiServer = "http://server.com";
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
}
constructor(private httpClient: HttpClient) { }
get(): Observable<any[]> {
return this.httpClient.get<any[]>(this.apiServer + '/customers/');
}
}
Pleate note that you need to import HttpClientModule
in your application module before you can use HttpClient
.
Next, you need to inject the ApiService
in the Angular 10 component where you want to display your data.
Let’s keep it simple and use the App
component.
Open the src/app/app.component.ts
file and update it as follows:
import { Component, OnInit } from '@angular/core';
import { ApiService } from '../api.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class App implements OnInit {
data = [];
constructor(private apiService: ApiService) { }
ngOnInit() {
this.apiService.get().subscribe((data: any[])=>{
this.data = data;
})
}
}
#angular #angular-10 #angular-9