כולנו כבר מכירים את קובץ הניתוב של אנגולר – app-routing.module.ts.
זה קובץ ברירת מחדל שנוצר בזמן הקמת הפרויקט ב-CLI, אנחנו גם יודעים שהניתוב הבסיסי נראה כך:
const routes: Routes = [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
];שורה 2:
עושה ניתוב ל-home במידה שהמשתמש לא הכניס ב-URL את המיקום שאליו הוא רוצה לגלוש באתר שלנו.
שורה 3:
מבצעת את הניתוב והקריאה לרכיב המתאים, במקרה הזה HomeComponent.
עד לכאן זה בסיסי ופשוט, עכשיו נסבך את זה קצת.
מה אם אנחנו רוצים לעשות ניתוב שרק דרכו ניתן לבצע ניתובים נוספים?
זה יראה כך:
import { NgModule } from '@angular/core';
import { Routes, RouterModule, PreloadAllModules } from '@angular/router';
import { CustomerInfoComponent } from './customers/customer-info/customer-info.component';
import { CustomerLoginComponent } from './customers/customer-login/customer-login.component';
import { CustomersComponent } from './customers/customers.component';
import { HomeComponent } from './home/home.component';
const routes: Routes = [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{
path: 'customers', component: CustomersComponent,
children: [
{ path: 'info', component: CustomerInfoComponent },
{ path: 'login', component: CustomerLoginComponent }
]
}
];
@NgModule({
imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })],
exports: [RouterModule]
})
export class AppRoutingModule { }
הקמנו עוד 2 רכיבים:
- info
- login
הם ישמשו אותנו כתת-דפים בתוך customers.
בנוסף, כדי שהניתוב יעבוד, אנחנו צריכים להראות לאנגולר איפה אנחנו רוצים את הניתוב ולכן בדף של customers נוסיף את תגית הניתוב:
<p>customers works!</p> <router-outlet></router-outlet>
איך יראה ה-URL שלנו?
http://localhost:4200/customers/info
הניתוב הראשון מגיע מ-app-routing.module.ts, הוא הניתוב שאנחנו מכירים, הפשוט של path ו-component.
הניתוב השני מגיע מתוך ה-children של אותו ניתוב, אפשר להמשיך ולעשות עוד ניתובים בתוך ניתובים (כך גם ליצור breadcrumbs).
אפשר לשלב את זה עם lazy loading וכך לטעון את המודול רק בניתוב מסויים ביחד עם כל הניתובים שלו.





