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