Ionic 5 ion-tab 隐藏在某些特定页面中

Aas*_*han 5 components show-hide ionic-framework ionic-tabs angular

我已经创建了选项卡页面并通过选择器包含在我的 app.component.html 文件中,我的问题是我想在某些特定页面中隐藏选项卡,任何人都可以帮助我。下面我分享我创建的标签页的代码。

标签页.html

        <ion-tabs>
            <ion-tab-bar slot="bottom">
                 <ion-tab-button tab="home">
                   <ion-icon name="home"></ion-icon>
                <ion-label>Home</ion-label>
            </ion-tab-button>
    
            <ion-tab-button tab="search">
                <ion-icon name="search"></ion-icon>
                <ion-label>Search</ion-label>
            </ion-tab-button>
    
            <ion-tab-button tab="click-history">
                <ion-icon name="color-wand"></ion-icon>
                <ion-label>Clicks</ion-label>
            </ion-tab-button>
    
            <ion-tab-button tab="profile">
                <ion-icon name="person"></ion-icon>
                <ion-label>Profile</ion-label>
            </ion-tab-button>
        </ion-tab-bar>
    </ion-tabs>
Run Code Online (Sandbox Code Playgroud)

应用程序组件.html

    <ion-app>
        <app-menu></app-menu>
        <ion-router-outlet id="main"></ion-router-outlet>
        <app-tab></app-tab>
    </ion-app>
Run Code Online (Sandbox Code Playgroud)

Mic*_*l D 6

“页面”到底是什么意思?如果您指的是特定路由,您可以订阅Router并在 App 组件控制器中设置布尔标志

应用程序组件.ts

import { NavigationEnd, Router } from '@angular/router';

import { Subject } from 'rxjs';
import { takeUntil, filter } from 'rxjs/operators';

export class AppComponent implements OnInit, OnDestroy {
  closed$ = new Subject<any>();
  showTabs = true; // <-- show tabs by default

  constructor(private _router: Router) { }

  ngOnInit() {
    this._router.events.pipe(
      filter(e => e instanceof NavigationEnd),
      takeUntil(this.closed$)
    ).subscribe(event => {
      if (event['url'] === '/somePage') {
        this.showTabs = false; // <-- hide tabs on specific pages
      }
    });
  }
  
  ngOnDestroy() {
    this.closed$.next(); // <-- close subscription when component is destroyed
  }
}
Run Code Online (Sandbox Code Playgroud)

应用程序组件.html

<ion-app>
  <app-menu></app-menu>
  <ion-router-outlet id="main"></ion-router-outlet>
  <app-tab *ngIf="showTabs"></app-tab>
</ion-app>
Run Code Online (Sandbox Code Playgroud)

  • 不!在 if 条件 @michael 中指定路由器后,它不起作用,我的页面是空白的 (2认同)