angular - 在根级别配置 ion-tabs 的选项卡

标签 angular ionic-framework angular-routing ionic4

我正在寻求有关配置 ion-tabs 的帮助,以便选项卡位于根级别,而不需要子文件夹。因此,我想要的是 /tab1,而不是 /tabs/tab1

我正在关注 Ionic Academy 的组合以及 Ionic 的文档和 Angular Router .

我使用的是运行 ionic start myApp tabs 时获得的默认设置。

最有可能的是更新tabs.router.module.ts,但不确定是否/如何可能。这是那里的代码。

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { TabsPage } from './tabs.page';

const routes: Routes = [
  {
    path: 'tabs',
    component: TabsPage,
    children: [
      {
        path: 'check-in',
        children: [
          {
            path: '',
            loadChildren: '../pages/check-in/check-in.module#CheckInPageModule'
          }
        ]
      },
      {
        path: 'house-manual',
        children: [
          {
            path: '',
            loadChildren: '../pages/house-manual/house-manual.module#HouseManualPageModule'
          }
        ]
      },
      {
        path: 'local-area',
        children: [
          {
            path: '',
            loadChildren: '../pages/local-area/local-area.module#LocalAreaPageModule'
          }
        ]
      },
      {
        path: '',
        redirectTo: '/tabs/check-in',
        pathMatch: 'full'
      }
    ]
  },
  {
    path: '',
    redirectTo: '/tabs/check-in',
    pathMatch: 'full'
  }
];

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

我最近的尝试是在 app-routing.module 中进行此操作,但是当我将 path: 'tabs' 更改为 path: '' 时,它会因 ERROR 而中断错误:控制台中出现“[object Object]”

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

const routes: Routes = [
    {
        path: '',
        component: TabsPage,
        children: [
            {
                path: 'check-in',
                children: [
                    {
                        path: '',
                        loadChildren: './pages/check-in/check-in.module#CheckInPageModule'
                    }
                ]
            },
            {
                path: 'house-manual',
                children: [
                    {
                        path: '',
                        loadChildren: './pages/house-manual/house-manual.module#HouseManualPageModule'
                    }
                ]
            },
            {
                path: 'local-area',
                children: [
                    {
                        path: '',
                        loadChildren: './pages/local-area/local-area.module#LocalAreaPageModule'
                    }
                ]
            },
            {
                path: '',
                redirectTo: '/check-in',
                pathMatch: 'full'
            }
        ]
    },
    {
        path: '',
        redirectTo: '/check-in',
        pathMatch: 'full'
    }
];

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

最佳答案

实现此目的的简单方法是,只需在页面 tabs.page.html 上的选项卡按钮中添加以下属性

routerLink="/tab1" routerDirection="root"

示例

    <ion-tabs>

      <ion-tab-bar slot="bottom">
        <ion-tab-button routerLink="/tab1" routerDirection="root" tab="tab1">
          <ion-icon name="flash"></ion-icon>
          <ion-label>Tab One</ion-label>
        </ion-tab-button>

        <ion-tab-button routerLink="/tab2" routerDirection="root"  tab="tab2">
          <ion-icon name="apps"></ion-icon>
          <ion-label>Tab Two</ion-label>
        </ion-tab-button>

        <ion-tab-button routerLink="/tab3" routerDirection="root"  tab="tab3">
          <ion-icon name="send"></ion-icon>
          <ion-label>Tab Three</ion-label>
        </ion-tab-button>
      </ion-tab-bar>

    </ion-tabs>

关于angular - 在根级别配置 ion-tabs 的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54836090/

相关文章:

angular - 函数从 pouchDB 获取委托(delegate),插入一些调试数据并返回一个 promise

javascript - 如何使用 ng-repeat 在 Ionic 中创建卡片的动态排列

javascript - 用户返回时 Controller 初始化逻辑未命中

lazy-loading - 使用 webpack 4 的 Angular 8 延迟加载中未显示 chunkName

javascript - Angular 2 - 升级到 rc4 会引发脚本错误

css - Angular 2 测试 - 获取 DOM 元素样式

javascript - 如何使用 Angularjs ionic 缓存图像?

javascript - AngularJS:如何判断我的 Controller 是否绑定(bind)到我的 ng-repeat 指令元素?我的数据没有显示

angular - 如何重置表单中的特定字段?

Angular 2获取路线没有路线提供者