0Pricing
Angular Academy · Pelajaran

Resolver dan Data Rute

Muat data sebelum mengaktifkan rute.

Resolver dan Data Rute adalah pelajaran Angular Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Angular Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Angular Academy mencakup 4 pelajaran total.

Apa itu penyelesai

Penyelesai mengambil data terlebih dahulu sebelum rute diaktifkan, sehingga komponen ditampilkan saat data sudah tersedia — tanpa kilatan pemuatan di dalam komponen.

Data rute statis

Properti data menambahkan nilai statis ke rute, yang dapat dibaca melalui ActivatedRoute.data.

export const routes = [
  { path: 'admin', component: AdminComponent,
    data: { title: 'Admin Panel', roles: ['admin'] } }
];

Membaca data rute

route.data adalah observable dari objek data yang telah digabungkan.

route.data.subscribe(d => {
  console.log(d['title']); // Admin Panel
});

Penyelesai fungsional: ResolveFn

Angular modern menggunakan ResolveFn — fungsi biasa yang mengembalikan data (atau observable/promise yang berisi data tersebut).

import { ResolveFn } from '@angular/router';
import { inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';

export const userResolver = (route) => {
  const http = inject(HttpClient);
  return http.get('/api/user/' + route.paramMap.get('id'));
};

Menghubungkan penyelesai ke rute

Tambahkan penyelesai di bawah kunci resolve. Hasilnya ditempatkan dalam route.data di bawah kunci tersebut.

export const routes = [
  { path: 'user/:id', component: UserComponent,
    resolve: { user: userResolver } }
];

Menggunakan data yang telah diselesaikan

Baca nilai yang telah diselesaikan dari route.data berdasarkan kuncinya.

route.data.subscribe(d => {
  this.user = d['user']; // already loaded
});

Data terselesaikan melalui pengikatan input

Dengan withComponentInputBinding(), kunci yang telah diselesaikan otomatis diikat ke input komponen yang namanya sesuai.

export class UserComponent {
  @Input() user!: User; // from resolve: { user: ... }
}

Penyelesai dan waktu navigasi

router menunggu observable penyelesai hingga selesai (atau promise terselesaikan) sebelum mengaktifkan rute. Penyelesai yang tidak pernah selesai akan menghambat navigasi.

Menangani kesalahan penyelesai

Jika penyelesai mengalami kesalahan, navigasi dibatalkan. Tangkap kesalahan di dalam penyelesai untuk mengarahkan ulang atau mengembalikan cadangan.

export const userResolver = (route) => {
  const http = inject(HttpClient);
  const router = inject(Router);
  return http.get('/api/user/' + route.paramMap.get('id')).pipe(
    catchError(() => { router.navigate(['/404']); return EMPTY; })
  );
};

Kapan menggunakan penyelesai

Gunakan penyelesai untuk data yang harus tersedia sebelum halaman ditampilkan. Untuk data yang dapat dimuat secara bertahap, mengambilnya di dalam komponen (dengan status pemuatan) sering kali memberikan pengalaman pengguna yang lebih baik. Jangan menghambat navigasi hanya karena data opsional yang lambat.

Strategi judul

router memiliki properti rute bawaan title dan TitleStrategy untuk menetapkan judul dokumen, yang sering dipasangkan dengan data yang telah diselesaikan.

export const routes = [
  { path: 'about', component: AboutComponent, title: 'About Us' }
];

Pemeriksaan Cepat

Uji pemahaman Anda tentang penyelesai.

Ringkasan: Penyelesai & Data Rute

Penyelesai memuat data sebelum aktivasi.

  • data: nilai rute statis.
  • ResolveFn + resolve: mengambil data secara dinamis terlebih dahulu ke dalam route.data.
  • router menunggu hingga selesai; tangani kesalahan agar navigasi tidak terhambat.

Berikutnya: penjaga rute fungsional.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Resolver dan Data Rute” gratis?

Ya — teks lengkap “Resolver dan Data Rute” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Angular Academy, upgrade ke CoddyKit PRO. Kursus Angular Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Resolver dan Data Rute”?

Muat data sebelum mengaktifkan rute. Kamu berlatih Angular Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Angular Academy?

Tidak diperlukan pengalaman sebelumnya. Angular Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Resolver dan Data Rute” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Angular Academy ini?

Ya. Setiap pelajaran Angular Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Parameter Rute dan Parameter Kueri
  2. Resolver dan Data Rute
  3. Penjaga Rute Fungsional
  4. Peristiwa Router dan Navigasi
← Kembali ke Angular Academy