摘要
您如何实现两个页面,每个页面都有一个<ion-tabs>
(每个页面至少包含两个<ion-tab>
)?选项卡名称和图标会更改,选项卡内容仅在单击后才会更改。
细节
我有一个问题,我努力寻找解决方案。我看到其他人发布关于这两个的帖子,也没有成功。
首先,对于上下文,我上传了一个 GitHub 存储库:https://github.com/janhesters/twotabs。
我想在 Ionic 3 中编写一个应用程序,其中我有两个页面,每个页面包含 4 个<ion-tab>
<ion-tabs>
。我写了两页,分别叫home和hometwo(称为basepages)。在每个html中,我都声明了离子选项卡。
然后我做了4个页面(关于,大约两个,联系人,联系人两个;称为标签页),每个页面两个在每个主页的<ion-tab>
s中。
接下来,我在第一个主页上做了一个按钮,将第二个主页推到 navCtrl 上。(我没有将按钮放在其中一个选项卡页面上,因为这样页面就会被推到该导航上,因为每个选项卡页面似乎都有自己的导航 https://ionicframework.com/docs/api/components/tabs/Tab/)。
预期行为:第二个基本页面被推送到堆栈上,并显示新选项卡及其各自的名称图标和内容。
观察到的行为:第二个基本页面被推送到堆栈上,并显示新选项卡及其各自的名称和图标。但是页面的内容是第一个基本页面的相应选项卡之一。只有在单击每个新选项卡后,内容才会更改。
我该如何解决这个问题?(我不太好的解决方案之一,我不知道该怎么做,涉及在页面加载后立即"幽灵点击"所有选项卡)。
我没有检查你的源代码,但我认为这可能有效。你能快速尝试根导航吗?
import { App } from 'ionic-angular';
。
constructor(app: App) { ... }
然后使用以下代码而不是 navCtrl.push()
this.app.getRootNav().push(HomeTwoPage)
我发现的唯一解决方案是在选项卡中使用条件离子选项卡.html:
<ion-tabs id="locTabs" *ngIf="user && user.typeProfil == 'loc'">
<ion-tab [root]="annonce" tabTitle="Annonces" tabIcon="home"></ion-tab>
<ion-tab [root]="chat" tabTitle="Message" tabIcon="chatbubbles" [tabBadge]="nbUnread"></ion-tab>
<ion-tab [root]="agenda" tabTitle="Agenda" tabIcon="calendar"></ion-tab>
<ion-tab [root]="docs" tabTitle="Documents" tabIcon="document"></ion-tab>
<ion-tab [root]="userForm" tabTitle="Profil" tabIcon="person"></ion-tab>
</ion-tabs>
<ion-tabs id="proTabs" *ngIf="user && user.typeProfil != 'loc'">
<ion-tab [root]="annoncePro" tabTitle="Annonces" tabIcon="home"></ion-tab>
<ion-tab [root]="chat" tabTitle="Message" tabIcon="chatbubbles" [tabBadge]="nbUnread"></ion-tab>
<ion-tab [root]="agenda" tabTitle="Agenda" tabIcon="calendar"></ion-tab>
<ion-tab [root]="docsPro" tabTitle="Documents" tabIcon="document"></ion-tab>
<ion-tab [root]="userForm" tabTitle="Profil" tabIcon="person"></ion-tab>
</ion-tabs>
答案已经在 Ionic 论坛上提供 https://forum.ionicframework.com/t/99-cant-solve-this-creating-two-tab-pages-in-ionic-ion-tabs/118477/12
享受:)