Проблема с угловой маршрутизацией Я не знаю, чего не хватает

angular #routes #main #children

#угловой #маршруты #Главная #дети

Вопрос:

1. основной файл

 

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { BlogpostModule } from './blogpost/blogpost.module';
import { CmspageModule } from './cmspage/cmspage.module';
import { OwlModule } from 'ngx-owl-carousel';
import { AppComponent } from './app.component';
import { HeaderComponent } from './header/header.component';
import { FooterComponent } from './footer/footer.component';
import { BannerComponent } from './banner/banner.component';
import { PageNotFoundComponent } from './page-not-found/page-not-found.component';

@NgModule({
  declarations: [
    AppComponent,
    HeaderComponent,
    FooterComponent,
    BannerComponent, 
    PageNotFoundComponent
  ],
  imports: [
    BrowserModule,
    BlogpostModule,
    CmspageModule,
    OwlModule, 
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})

export class AppModule { }

 

основной файл маршрутизатора

 
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { PageNotFoundComponent } from '../app/page-not-found/page-not-found.component';

const routes: Routes = [
  {path: '', redirectTo: '', pathMatch: 'full'},
  {path: '**', component: PageNotFoundComponent}
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

 

дочерний основной модуль file router

 
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { PageComponent } from './page/page.component';
import { ContactFormComponent } from './contact-form/contact-form.component';

const routes: Routes = [
  {path: 'page/:slug', component: PageComponent},
  {path: 'contact', component: ContactFormComponent}
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class CmspageRoutingModule { }

 

другой дочерний файл основного модуля маршрутизатора

 
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { BlogpostListComponent } from '../blogpost/blogpost-list/blogpost-list.component';
import { BlogpostDetailComponent } from '../blogpost/blogpost-detail/blogpost-detail.component';

const routes: Routes = [
  {path: 'blog', component: BlogpostListComponent},
  {path: 'blog/:id', component: BlogpostDetailComponent}
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class BlogpostRoutingModule { }

 

заголовок HTML-файла

   <nav class="navbar navbar-expand-md navbar-dark bg-blue">
    <div class="container">
      <a class="navbar-brand" routerLink="/">
        <img src="assets/images/logo.jpg" alt="Angular Project" />
      </a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarCollapse">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active">
            <a routerLink="/" routerLinkActive="active" class="nav-link">Home</a>
          </li>
          <li class="nav-item">
            <a routerLink="/page/about" routerLinkActive="active" class="nav-link">About</a>
          </li>
          <li class="nav-item">
            <a routerLink="/contact" routerLinkActive="active" class="nav-link">Contact</a>
          </li>
          <li class="nav-item">
            <a routerLink="/blog" routerLinkActive="active" class="nav-link">Blog</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

 

чего мне не хватает в файле модуля?
могу ли я использовать дочерний элемент для маршрутизации родительского файла с использованием основного дочернего файла, импортирующего основной ts-файл?
Я использую дочерние элементы для прямой родительской маршрутизации, но моя маршрутизация не работает
, дайте мне идеальное решение

Ответ №1:

Из описания я действительно не знаю, в чем проблема. Но убедитесь, что вы импортировали свои модули маршрутизации в:

 BlogpostModule,
CmspageModule,
OwlModule, 
 

Для каждого модуля требуется выделенный модуль маршрутизации. Для лучшего решения вы можете использовать маршруты с отложенной загрузкой. https://angular.io/guide/lazy-loading-ngmodules