/angular-guide > _

Routing

Standalone სისტემაში შემოტანილია რაუთერის გამარტივებული API. ახლა შესაძლებელია რაიმე რაუთების შექმნა ცალკე ფაილში:

export const ROUTES: Route[] = [
  { path: "admin", component: AdminPanelComponent },
  // ... other routes
];

და მისი დამატება main.ts-ში bootstrapApplication-ის კონფიგურაციაში, კერძოდ providers მასივში provideRouter ფუნქციის დახმარებით:

import { ROUTES } from "./app/admin/admin.routes.ts";

bootstrapApplication(AppComponent, {
  providers: [
    provideRouter([ROUTES]),
    // ...
  ],
});

Lazy-loading

შესაძლებელია რაუთების “ზარმაცად” ჩატვირთვაც. ამისთვის გამოიყენება loadComponent:

export const ROUTES: Route[] = [
  {
    path: "admin",
    loadComponent: () =>
      import("./admin/panel.component").then((mod) => mod.AdminPanelComponent),
  },
  // ...
];

თუ რამდენიმე რაუთის “ზარმაცად” ჩატვირთვა გვინდა, შეგვიძლია ცალკე რაუთების ფაილის დაიმპორტება loadChildren-ით:

// In the main application:
export const ROUTES: Route[] = [
  {
    path: "admin",
    loadChildren: () =>
      import("./admin/routes").then((mod) => mod.ADMIN_ROUTES),
  },
  // ...
];

// In admin/routes.ts:
export const ADMIN_ROUTES: Route[] = [
  { path: "home", component: AdminHomeComponent },
  { path: "users", component: AdminUsersComponent },
  // ...
];

ეს მეთოდი მხოლოდ მაშინ მუშაობს, როცა ყველა ჩატვირთული კომპონენტი არის standalone.

რაუთების ჯგუფისთვის სერვისის მიწოდება

თუ არსებობს სერვისი, რომელიც გვინდა რომ მხოლოდ /admin-ის ფარგლებში ფუნქციონირებდეს, ეს შეგვიძლია რაუთების სიაშივე გავაკეთოთ, providers თვისებით:

export const ROUTES: Route[] = [
  {
    path: "admin",
    providers: [AdminService, { provide: ADMIN_API_KEY, useValue: "12345" }],
    children: [
      { path: "users", component: AdminUsersComponent },
      { path: "teams", component: AdminTeamsComponent },
    ],
  },
  // ... other application routes that don't
  //     have access to ADMIN_API_KEY or AdminService.
];

აქ admin რაუთსა და მის შვილებს (children-ში არსებულ რაუთებს) წვდომა აქვთ AdminService-სა და ADMIN_API_KEY-ზე.