HttpClient & Fetching Data
Penjelasan
HttpClient adalah service bawaan Angular untuk melakukan request HTTP, harus disediakan lewat provideHttpClient() di app.config.ts. Method-nya (mis. http.get()) mengembalikan Observable — dilanggan (subscribe) untuk mendapat hasilnya, hasil itu biasanya ditampung ke signal supaya template otomatis update.
Contoh Konsep
import { Component, signal, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-daftar-produk',
standalone: true,
template: `
@if (loading()) {
<p>Memuat...</p>
} @else {
@for (item of produk(); track item.id) {
<li>{{ item.nama }}</li>
}
}
`,
})
export class DaftarProdukComponent implements OnInit {
produk = signal<any[]>([]);
loading = signal(true);
constructor(private http: HttpClient) {}
ngOnInit() {
this.http.get<any[]>('https://api.contoh.com/produk').subscribe({
next: (data) => {
this.produk.set(data);
this.loading.set(false);
},
error: () => this.loading.set(false),
});
}
}
Praktikum
Buat component DaftarArtikelComponent dengan signal artikel dan loading. Di ngOnInit(), pakai HttpClient untuk fetch dari 'https://api.contoh.com/artikel', isi signal artikel saat sukses dan set loading ke false baik sukses maupun gagal.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Observable dari HttpClient TIDAK akan melakukan apa pun sampai kamu memanggil .subscribe() padanya — beda dengan Promise (fetch() biasa) yang langsung berjalan begitu dipanggil, ini kesalahan umum pemula yang bingung kenapa request-nya "tidak terkirim" padahal sudah menulis http.get().