Study
Angular

Route Parameters

Penjelasan

Route dengan parameter dinamis didefinisikan lewat titik dua di path (mis. 'produk/:id'). Nilainya diambil di component tujuan lewat service ActivatedRoute yang di-inject lewat constructor, diakses lewat snapshot.paramMap.get('id') untuk pembacaan sekali, atau paramMap observable untuk memantau perubahan.

Contoh Konsep

// app.routes.ts
export const routes: Routes = [
    { path: 'produk/:id', component: ProdukDetailComponent },
];

// produk-detail.component.ts
import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

@Component({
    selector: 'app-produk-detail',
    standalone: true,
    template: `<p>Produk dengan id: {{ id }}</p>`,
})
export class ProdukDetailComponent {
    id: string | null;

    constructor(route: ActivatedRoute) {
        this.id = route.snapshot.paramMap.get('id');
    }
}

Praktikum

Buat route 'artikel/:slug' mengarah ke ArtikelDetailComponent. Di dalam component itu, ambil parameter slug lewat ActivatedRoute dan tampilkan "Artikel: {{ slug }}" di template.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

route.snapshot.paramMap.get() cuma membaca nilai parameter SEKALI saat component pertama dibuat — kalau user berpindah dari /artikel/a ke /artikel/b TANPA component-nya dibuat ulang (mis. lewat routerLink di halaman yang sama), snapshot TIDAK akan update; untuk kasus itu butuh subscribe ke route.paramMap (observable) alih-alih snapshot.