gpt4 book ai didi

typescript - 在页面之间导航时如何使菜单正确显示

转载 作者:行者123 更新时间:2023-12-04 15:38:32 37 4
gpt4 key购买 nike

我正在开发的应用程序具有以下结构:有两个主页面,每个页面都有不同的侧边菜单。

访问第一页时,正在显示右侧菜单。从第一页访问第二页时,右侧菜单也在显示。再次尝试转到第一页时会出现问题。第二个菜单被正确隐藏,但第一页的菜单永远不会显示。

enter image description here

这是一个显示问题的小仓库:
https://github.com/iamkinetic/ionic4-multiple-menus-bug

每个版本的 Ionic(从 4.6 到 4.10)似乎都有这个问题,即使手动启用菜单也不能完全解决这个问题。难道我做错了什么?有一个更好的方法吗?

最佳答案

我有同样的问题。我刚刚创建了一个名为 menu 的新角度组件,并将其引入到所有需要它的组件中。发生这种情况是因为当您返回时不会再次引用 ionicMenu。你不能在这里使用 ionic cli。您可能必须手动解决它。如果我找到代码并将其放在这里,我会再次编辑。

更新 :这是步骤。

  • 使用 ionic-cli
  • 制作一个名为 menu 的 ionic 页面组件
  • 把它扔进它的 HTML

  • <ion-header>
    <ion-toolbar [color]="currentColor">
    <ion-buttons slot="start">
    <ion-menu-button></ion-menu-button>
    </ion-buttons>
    <ion-title>
    My App
    </ion-title>
    </ion-toolbar>
    </ion-header>

    <ion-menu contentId="child-content" side="start" menuId="custom" class="my-custom-menu" type="overlay">
    <ion-header>
    <ion-toolbar [color]="currentColor">
    <ion-title>Menu</ion-title>
    </ion-toolbar>
    </ion-header>
    <ion-content>
    <ion-list (click) = "closeMenu()">
    <ion-item routerLink="/dashboard/home" closeMenu>Home</ion-item>
    <ion-item routerLink="/dashboard/myorder" menuClose>My Order</ion-item>
    <ion-item routerLink="/dashboard/aboutus" menuClose>About us</ion-item>
    <ion-item routerLink="/dashboard/contactus" menuClose>Contact us</ion-item>
    <ion-item routerLink="/dashboard/feedback" menuClose>Feedback</ion-item>
    <ion-item (click) = "logout()">Log Out</ion-item>
    </ion-list>
    </ion-content>
    </ion-menu>
    <ion-content overflow-scroll="true">
    <ion-router-outlet id="child-content"></ion-router-outlet>
    </ion-content>
  • app-routing.module.ts 复制您想要菜单组件的所有路由并将它们粘贴到 menu.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 './dashboard.page';

    const routes: Routes = [
    {
    path: '',
    component: MenuPage,
    children: [
    {
    path: '', redirectTo: 'home', pathMatch: 'full'
    },
    { path: 'schedule', loadChildren: '../schedule/schedule.module#SchedulePageModule' },
    { path: 'orderstatus/:id', loadChildren: '../orderstatus/orderstatus.module#OrderstatusPageModule' },
    { path: 'payment', loadChildren: '../payment/payment.module#PaymentPageModule' },
    { path: 'aboutus', loadChildren: '../aboutus/aboutus.module#AboutusPageModule' },
    { path: 'contactus', loadChildren: '../contactus/contactus.module#ContactusPageModule' },
    { path: 'howitworks', loadChildren: '../howitworks/howitworks.module#HowitworksPageModule' },
    { path: 'myorder', loadChildren: '../myorder/myorder.module#MyorderPageModule' },
    { path: 'orderdetails/:id', loadChildren: '../orderdetails/orderdetails.module#OrderdetailsPageModule' },
    { path: 'feedback', loadChildren: '../feedback/feedback.module#FeedbackPageModule' },
    { path: 'home', loadChildren: '../home/home.module#HomePageModule' },
    ]
    },
    ];

    @NgModule({
    imports: [
    CommonModule,
    FormsModule,
    IonicModule,
    RouterModule.forChild(routes)
    ],
    declarations: [MenuPage]
    })
    export class MenuPageModule { }

  • 现在,您应该在“菜单页面”下拥有所有路线的通用菜单。如果您不喜欢路径中的 /menu/somepage,则应该能够以 menu 访问它们,请将其更改为类似 dashboardapp-routing.module.ts
  • 中的内容

    关于typescript - 在页面之间导航时如何使菜单正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174956/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com