Я новичок в разработке angular 4. В одном из моих проектов я использую ленивую загрузку для маршрутизации. Модуль ленивой загрузки содержит дочерний компонент. Однако маршрутизация к дочернему компоненту всегда завершается с ошибкой.
Error: Cannot match any routes. URL Segment: 'home/addGroup'
Не могли бы вы помочь, если я делаю что-то не так? Я пробовал всеми способами, но ни один из них не увенчался успехом.
Ниже мои модули и маршрутизация.
индекс.html:
<app-root></app-root>
приложение.модуль:
import { routes } from './app.routes';
@NgModule({
declarations: [
AppComponent,
UserSignupComponent,
UserLoginComponent,
],
imports: [
BrowserModule,
routes,
HttpModule,
FormsModule
]
});
приложение.маршруты:
import { HomeModuleModule } from './home-module/home-module.module';
export const appRoutes: Routes = [
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: 'login', component: UserLoginComponent },
{
path: 'home', loadChildren: './home-module/home-module.module#HomeModuleModule'
}
];
export const routes: ModuleWithProviders = RouterModule.forRoot(appRoutes);
приложение.component.html:
<router-outlet></router-outlet>
домашний модуль:
import { routes } from './home.routes';
@NgModule({
imports: [
CommonModule,
BrowserModule,
routes,
HttpModule,
FormsModule
],
declarations: [HomeComponent, AddGroupComponent, AddItemComponent],
providers: [httpserviceClass, sharedserviceClass],
})
домашние.маршруты:
export const router: Routes = [
{ path: '', component: HomeComponent, pathMatch: 'full' },
{
path: 'home', component: HomeComponent,
children: [
{ path: 'addItem/:groupName', component: AddItemComponent },
{ path: 'addGroup', component: AddGroupComponent },
]
}
];
export const routes: ModuleWithProviders = RouterModule.forChild(router);
home.component.html:
<nav class="navbar navbar-default noMargin">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">Budget</a>
</div>
<ul class="nav navbar-nav">
<li> <a [routerLink]="['addGroup']"> addgroup </a> </li>
</ul>
</div>
</nav>
<div>
<router-outlet></router-outlet>
</div>
Дело в том, что я могу перенаправить на «домашний» компонент домашнего модуля из компонента входа в систему с помощью
"this.router.navigate(['дом']);"
Однако из домашнего компонента я не могу перейти к компоненту addGroup через
<a [routerLink]="['addGroup']"> addgroup </a>
Я что-то упускаю?
routerLink
вHomeComponent
-[routerLink]="['home', 'addGroup']"
- person planet_hunter   schedule 05.01.2018