Не удается заставить работать вкладку, так как 2 страницы в Ionic 4 - PullRequest
1 голос
/ 07 марта 2019

Я работаю в своем приложении Ionic 4, и я добавил тему вкладок, и я хочу, чтобы одна из вкладок работала в режиме 2 маршрутизации, например, когда пользователь не авторизован, откроется страница входа, а когда пользователь войдет в учетную запись страница откроется.

Это мои tabs.router.module.ts :

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

const routes: Routes = [
  {
    path: 'tabs',
    component: TabsPage,
    children: [
      {
        path: 'tab1',
        children: [
          {
            path: '',
            loadChildren: '../tab1/tab1.module#Tab1PageModule'
          }
        ]
      },
      {
        path: 'tab2',
        canActivate: [AuthenticationGuard],
        children: [
          {
            path: '',
            loadChildren: '../tab2/tab2.module#Tab2PageModule'
          }
        ]
      },
      {
        path: 'tab2/:id',
        canActivate: [AuthenticationGuard],
        children: [
          {
            path: '',
            loadChildren: '../tab2/tab2.module#Tab2PageModule'
          }
        ]
      },
      {
        path: 'acceptchallenge',
        children: [
          {
            path: '',
            loadChildren: '../acceptchallenge/acceptchallenge.module#AcceptchallengePageModule'
          }
        ]
      },
      {
        path: 'tab3',
        children: [
          {
            path: '',
            loadChildren: '../tab3/tab3.module#Tab3PageModule'
          },
          {
            path: '/login',
            loadChildren: '../login/login.module#LoginPageModule'
          }
        ]
      },
      {
        path: '',
        redirectTo: '/tabs/tab1',
        pathMatch: 'full'
      }
    ]
  },
  {
    path: '',
    redirectTo: '/tabs/tab1',
    pathMatch: 'full'
  }
];

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

Я хочу, чтобы tab3 открывал страницу входа, когда пользователь не вошел в систему и когда пользователь входит в систему, откройте страницу учетной записи.

Так что я должен добавить любой canActivate, чтобы это работало.

Любая помощь очень ценится.

1 Ответ

2 голосов
/ 07 марта 2019

Внутри вашего tabs.html Вы можете использовать * ngIf для отображения вкладок при входе или выходе пользователя. Возьмите bool или любую другую логику, которую вы можете использовать, и покажите ее на странице вкладок следующим образом.

<ion-tab-bar slot="bottom">
    <ion-tab-button tab="profile" *ngIf="userLogin == true">
      <ion-icon name="person"></ion-icon>
      <ion-label>Profile</ion-label>
    </ion-tab-button>

    <ion-tab-button tab="login"  *ngIf="userLogin == false">
      <ion-icon name="settings"></ion-icon>
      <ion-label>Login</ion-label>
    </ion-tab-button>
</ion-tab-bar>
...