Редактировать: Изменение форумов-routing.module.ts с { path: '', component: ForumsComponent }
на { path: 'forums', component: ForumsComponent }
сделало маршрутизацию работающей, как и ожидалось, но для меня не имеет смысла, почему мне нужно было это указать. Если бы этот модуль работал как полностью автономный модуль, я бы хотел, чтобы он направлял на /, а не / форумы, а затем, при включении его в качестве модуля, выберите, какие маршруты маршрутов здесь, вместо того, чтобы принудительно использовать "форумы"
Я довольно новичок в угловой. Я пытаюсь создать подмодуль в моем приложении, модуль форумов. Я в основном хочу, чтобы маршруты выглядели так:
- /
- / форумы
- Главная страница форумов (будут отображаться категории форумов)
- / форумы /: категория
- Будут отображаться сообщения в указанной категории
- / форум /: категория / новый
- Откроется новая почтовая составляющая, которая будет сделана в указанной категории
- / форумы /: категория /: сообщения дан
- Откроет определенный пост в указанной категории
Однако каким-то образом моя маршрутизация игнорирует маршрутизацию в моем app-routing.module и пропускает прямо в мой forum-routing.module. (так localhost / ведет меня на форумы, localhost / categoryId ведет к деталям этой категории и т. д.). Я слежу за тем, как я выучил «Полное руководство по Angular 2» в Udemy и приложении, которое он создает в этом курсе, но даже если мне кажется, что я делаю все то же самое, это как-то не так.
Мне кажется, что мне не хватает какой-то мелкой детали ... в любом случае, я настроил свои модули следующим образом
приложение маршрутизации-модуль:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { ForumsComponent } from './forums/forums.component';
const routes: Routes = [
{ path: '', component: HomeComponent},
{ path: 'forums', component: ForumsComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
app.module
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { ForumsModule } from './forums/forums.module';
import { HomeComponent } from './home/home.component';
@NgModule({
declarations: [
AppComponent,
HomeComponent
],
imports: [
BrowserModule,
ForumsModule,
AppRoutingModule
],
providers: [UsersService],
bootstrap: [AppComponent]
})
export class AppModule { }
Форумы маршрутизации-модуль:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { ForumsComponent } from './forums.component';
import { CategoryDetailComponent } from './categories/category-detail/category-detail.component';
import { PostDetailComponent } from './posts/post-detail/post-detail.component';
import { NewPostComponent } from './posts/new-post/new-post.component';
import { CategoryGroupComponent } from './categories/category-group/category-group.component';
const forumsRoutes: Routes = [
{ path: '', component: ForumsComponent, children: [
{ path: '', component: CategoryGroupComponent },
{ path: ':category', component: CategoryDetailComponent },
{ path: ':category/new', component: NewPostComponent },
{ path: ':category/:postId', component: PostDetailComponent }
]},
];
@NgModule({
imports: [RouterModule.forChild(forumsRoutes)],
exports: [RouterModule]
})
export class ForumsRoutingModule { }
forums.module
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ForumsComponent } from './forums.component';
import { CategoryGroupComponent } from './categories/category-group/category-group.component';
import { CategoryItemComponent } from './categories/category-item/category-item.component';
import { PostDetailComponent } from './posts/post-detail/post-detail.component';
import { CategoryDetailComponent } from './categories/category-detail/category-detail.component';
import { PostReplyComponent } from './posts/post-detail/post-reply/post-reply.component';
import { PostItemComponent } from './posts/post-item/post-item.component';
import { NewPostComponent } from './posts/new-post/new-post.component';
import { ForumsRoutingModule } from './forums-routing.module';
@NgModule({
declarations: [
ForumsComponent,
CategoryGroupComponent,
CategoryItemComponent,
CategoryDetailComponent,
PostDetailComponent,
PostReplyComponent,
PostItemComponent,
NewPostComponent
],
imports: [
CommonModule,
ForumsRoutingModule
]
})
export class ForumsModule { }
app.component:
<div class="content">
<div class="container-fluid">
<router-outlet></router-outlet>
</div>
</div>
и, наконец, forums.component:
<p>
forums works!
<router-outlet></router-outlet>
</p>