Я разрабатываю приложение Ionic 4.0.0 для Angular 7 и пытаюсь совместить боковое меню с вкладками на дополнительной странице.
Посмотрим, как это работает:
- Боковое меню слева от разделенной панели, а затем справа, у меня есть простой вид со списком.
- При нажатии на элемент в списке он переходит на страницу, где у меня есть 4 вкладки для отображения некоторых данных, связанных с этим элементом.
Я сталкиваюсь с двумя основными проблемами:
- При перетаскивании назад ничего не происходит. Я переместил меню в правую часть экрана, чтобы убедиться, что события не конфликтуют.
- При нажатии элемента в начальном списке и маршрутизации на вторую страницу с вкладками запускается полная перезагрузка страницы. Это на самом деле самая раздражающая часть. Боюсь, что-то не так с угловым роутером.
В основном на основном модуле маршрутизации я проверяю аутентификацию и показываю страницу входа в систему, если пользователь не аутентифицирован, и защищаю суб-маршруты. Я опускаю этот код для простоты.
Затем у меня есть /app/AppRoutingModule
, который загружает все защищенные маршруты и выглядит следующим образом (без некоторых строк):
const routes: Routes = [
{...},
{
path: 'communities',
loadChildren: './communities/communities-routing.module#CommunitiesRoutingModule',
},
{...}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {
}
При достижении пути / приложения / сообщества загружается модуль суб-маршрутизации CommunitiesRoutingModule
, который выглядит примерно так:
const routes: Routes = [
{path: '', loadChildren: './communities.module#CommunitiesPageModule'}, // Page with a list of all communities.
{path: 'view/:id', loadChildren: './view-community/tabs/tabs.module#TabsPageModule'}, //Loads the tabs page module
{...} //Loads other sub-tabs.
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class CommunitiesRoutingModule {
}
И, наконец, загружаемый модуль TabsPageModule импортирует TabsCommuniitiesRoutingModule
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
TabsCommunitiesRoutingModule
],
declarations: [TabsPage]
})
export class TabsPageModule {
}
И TabsCommunitiesRoutingModule
const routes: Routes = [
{
path: '',
component: TabsPage,
children: [
{
path: 'info',
children: [{
path: '',
loadChildren: '../tab1-info/tab1-info.module#Tab1InfoPageModule'
}]
},
{
path: 'minutes',
children: [
{
path: '',
loadChildren: '../tab2-minutes/tab2-minutes.module#Tab2MinutesPageModule'
},
]
},
{
path: 'apartments',
children: [{
path: '',
loadChildren: '../tab3-apartments/tab3-apartments.module#Tab3ApartmentsPageModule'
}]
},
{
path: 'tasks',
children: [{
path: '',
loadChildren: '../tab4-tasks/tab4-tasks.module#Tab4TasksPageModule'
}]
}
],
},
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class TabsCommunitiesRoutingModule {
}
Спасибо!