【问题标题】:Ionic 4 side menu routing doesn't load on its own pageIonic 4 侧边菜单路由不会在其自己的页面上加载
【发布时间】:2019-05-03 07:45:11
【问题描述】:

我在项目的侧边菜单上添加了一个新菜单。我将它与服务连接。但是当我单击菜单时,它不会加载页面。它不会给我一个错误。我不明白为什么会这样。

如果你愿意,我可以在这里写服务和页面模块。

我添加了我项目的一些代码。请帮帮我。

我的 app.component.ts

export class AppComponent {
  public appPages = [
    {
      title: 'Home',
      url: '/home',
      icon: 'home'
    },
    {
      title: 'List',
      url: '/list',
      icon: 'list'
    },
    {
      title: 'Users',
      url: '/user',
      icon: 'person'
    }

  ];
constructor(
    private platform: Platform,
    private splashScreen: SplashScreen,
    private statusBar: StatusBar
  ) {
    this.initializeApp();
  }

  initializeApp() {
    this.platform.ready().then(() => {
      this.statusBar.styleDefault();
      this.splashScreen.hide();
    });
  }

我的 app-routing.module.ts

import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';

const routes: Routes = [
  {
    path: '',
    redirectTo: 'home',
    pathMatch: 'full'
  },
  {
    path: 'home',
    loadChildren: './home/home.module#HomePageModule'
  },
  {
    path: 'list',
    loadChildren: './list/list.module#ListPageModule'
  },
  { path: 'detail/:id', loadChildren: './detail/detail.module#DetailPageModule' },
  { path: 'user', loadChildren: './user/user.module#UserPageModule' }
];

@NgModule({
  imports: [
    RouterModule.forRoot(routes)
  ],
  exports: [RouterModule]
})
export class AppRoutingModule {}

我的应用程序-.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';

import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { PostService } from './services/post.service';

import { HttpClient, HttpClientModule } from '@angular/common/http';

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [
    BrowserModule,
    IonicModule.forRoot(),
    AppRoutingModule,
    HttpClientModule
  ],
  providers: [
    {provide:"apiUrl",useValue:"https://jsonplaceholder.typicode.com/"},
    StatusBar,
    SplashScreen,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
    PostService,
    HttpClient
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

我的侧边菜单代码:

<ion-app>
  <ion-split-pane>
    <ion-menu>
      <ion-header>
        <ion-toolbar>
          <ion-title>Menu</ion-title>
        </ion-toolbar>
      </ion-header>
      <ion-content>
        <ion-list>
          <ion-menu-toggle auto-hide="false" *ngFor="let p of appPages">
            <ion-item [routerDirection]="'root'" [routerLink]="[p.url]">
              <ion-icon slot="start" [name]="p.icon"></ion-icon>
              <ion-label>
                {{p.title}}
              </ion-label>
            </ion-item>
          </ion-menu-toggle>
        </ion-list>
      </ion-content>
    </ion-menu>
    <ion-router-outlet main></ion-router-outlet>
  </ion-split-pane>
</ion-app>

【问题讨论】:

  • 你能显示你的sidemenu html代码吗?以及哪个页面没有加载?
  • 我在上面的问题上写了我的 html 代码。失效的链接是“用户”

标签: angular typescript ionic-framework ionic4


【解决方案1】:

当你使用

<ion-item [routerDirection]="'root'" [routerLink]="[p.url]">

然后点击它,url 将作为参数传递,例如:/home

在您的情况下,因为您是从列表中获取它

<ion-item [routerDirection]="'root'" routerLink="{{p.url}}">

<ion-item [routerDirection]="'root'" [routerLink]="p.url">

【讨论】:

  • 抱歉忘记了它来自 ngFor 进行要求编辑
  • 我撤消了我的更改
  • 错误是我的html代码。我对其进行了编辑,现在列表很好。感谢您的宝贵时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
相关资源
最近更新 更多