angular - Ionic 4 - 路由器、页面和侧边菜单
问题描述
有人可以帮我解决我的问题吗?我有一个视图(地图)和带有地图和其他选项的侧边菜单。
当我启动应用程序时,地图显示但没有菜单图标并且有地图位置问题(地图从顶部移动了一些像素)。当我手动导航到其他网址(预订)时,显示侧栏菜单按钮,现在我在地图上有菜单图标。
下面的一些代码。
应用程序路由.module.ts
const routes: Routes = [
{ path: '', redirectTo: 'map', pathMatch: 'full' },
{ path: 'map', loadChildren: '../map/map.module#MapPageModule' },
{ path: 'menu', loadChildren: './pages/menu/menu.module#MenuPageModule' },
];
菜单.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { MenuPage } from './menu.page';
const routes: Routes = [
{
path: '',
component: MenuPage,
children: [
{
path: 'bookings',
loadChildren: './bookings/bookings.module#BookingsPageModule'
},
{
path: 'help',
loadChildren: './help/help.module#HelpPageModule'
},
{
path: 'payment',
loadChildren: './payment/payment.module#PaymentPageModule'
},
{
path: 'profile',
loadChildren: './profile/profile.module#ProfilePageModule'
},
{
path: 'settings',
loadChildren: './settings/settings.module#SettingsPageModule'
}
]
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [MenuPage]
})
export class MenuPageModule {
}
map.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { MapPage } from './map.page';
const routes: Routes = [
{
path: '',
component: MapPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [MapPage]
})
export class MapPageModule {
}
menu.page.html
<ion-menu contentId="content">
<ion-header>
<ion-toolbar>
<ion-title>
Simple menu
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div>
<ion-menu-toggle>
<ion-item routerLink="/map" routerDirection="root" routerLinkActive="active" detail='false'>
<ion-icon name="map" slot="start"></ion-icon>
<ion-label>
Map
</ion-label>
</ion-item>
</ion-menu-toggle>
</div>
<div>
<ion-menu-toggle>
<ion-item routerLink="/menu/bookings" routerDirection="root" routerLinkActive="active" detail='false'>
<ion-icon name="time" slot="start"></ion-icon>
<ion-label>
Booking history
</ion-label>
</ion-item>
</ion-menu-toggle>
</div>
</ion-content>
<ion-footer>
<div>
<ion-menu-toggle>
<ion-item routerLink="/login" routerDirection="root" routerLinkActive="active" detail='false'>
<ion-icon name="contact" slot="start"></ion-icon>
<ion-label>
Sign in
</ion-label>
</ion-item>
</ion-menu-toggle>
</div>
</ion-footer>
</ion-menu>
<ion-router-outlet id="content" main></ion-router-outlet>
map.page.html
<ion-header no-border no-padding>
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button color="primary"></ion-menu-button>
</ion-buttons>
<ion-searchbar animated></ion-searchbar>
</ion-toolbar>
</ion-header>
<ion-content fullscreen>
<div class="map" id="map"></div>
</ion-content>
菜单/预订/page.html
<ion-header>
<ion-toolbar color="transparent">
<ion-buttons slot="start">
<ion-menu-button color="tertiary"></ion-menu-button>
</ion-buttons>
<ion-title>Bookings</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
还有一些截图
解决方案
它看起来不像MAP
是 的孩子MENU
。这是设计使然吗?
看起来正在发生的是map.html
正在加载第一个,但menu.html
仅在您导航离开时才加载。
您需要在menu.html
页面上“着陆”才能加载,然后手动导航到地图或重定向到它。
在app.component.ts
项目加载后,您可以添加路由器导航。
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
this.router.navigate(['menu', 'map']);
});
}
或者可能添加重定向,然后在您看到的任何数字menu.module.ts
之后或之后删除您的网络浏览器中的路径http://localhost:8100
http://localhost:
import { MenuPage } from './menu.page';
const routes: Routes = [
{
path: '',
redirectTo: 'menu/map',
pathMatch: 'full'
},
{
path: '',
component: MenuPage,
children: [
{
path: 'bookings',
loadChildren: './bookings/bookings.module#BookingsPageModule'
},
我希望这可以帮助您解决问题。
推荐阅读
- terraform - Terraform 子模块对调用资源的依赖
- flask - 如何不允许浏览器将以前的值存储在烧瓶形式的 StringField 中?
- python - 有没有办法不将 { 放在 python 中 dict 变量的声明旁边?
- sql - 全连接表避免重复
- azure - 无法打开 Jenkins 门户
- python - 在 Python Pandas 中查找新的 Rider_ids
- css - Material Design React 响应式卡片
- c# - 如何在密码重置 b2c 上添加自定义步骤?
- javascript - ssi webshell 到节点 js webshell
- sql - 表中的一列为空,但该表中的另一列可以引用到另一个包含空列信息的表 - 如何?