Я хочу создать макет для своего приложения. Таким образом, я использую следующие маршруты:Угловая 2. Основная компоновка для всех маршрутов
export const routes: Routes = [
{
path: '',
component: MainLayoutComponent,
children: [
{
path: '',
redirectTo: 'contact',
pathMatch: 'full'
},
{
path: 'contact',
loadChildren : 'app/contact/contact.module#ContactModule'
}
]
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {}
Как вы можете видеть, я использую MainLayoutComponent
для разметки. И, когда мое приложение начинается, я хочу перенаправить на путь contact
.
Схема содержит навигации и router-outlet
:
@Component({
template: `
<nav>Navigation content</nav>
<div class="container"><router-outlet></router-outlet></div>
`,
})
Это шаблон в ContactComponent
:
<h2>Contact Component</h2>
Проблема, когда приложение запускается я вижу Contact Component
сообщение, но я не вижу навигации. Но, если я открою localhost:3000/contact
, тогда я вижу навигацию и сообщение Contact Component
. Что мне не хватает?
Это Plunker. Вы можете проверить, я создал Go to Contact
кнопку для перенаправления на /contact
url.
Спасибо за ответ, хорошо, я делаю это таким образом для лучшей настройки. Если мне нужен другой макет, я просто создам его. Например, для страницы входа/регистрации. – user348173
Но, я не могу понять, почему маршрут внутри ContactModule обрабатывает корневой URL, я регистрирую этот маршрут с помощью метода 'forChild'. Не могли бы вы объяснить мне? – user348173
Это связано с тем, что маршруты, объявленные с помощью forChild, объединяются в маршруты, объявленные с помощью forRoot. В вашем случае вы объявите маршрут: { путь: '', RedirectTo: 'контакт', pathMatch: 'полный' }, { путь: 'контакт', loadChildren: «приложение/контакт/контакт. module # ContactModule ' } в forRoot, а затем вы объявляете {path:' ', component: ContactComponent} для дочернего элемента. Это эффективно перезаписывает { путь: '', redirectTo: 'contact', pathMatch: 'full' }, поэтому ваш навигатор не отображается –