在我的应用中,我有3个标签。在第一个选项卡中有一个列表推送到另一个页面(在同一个选项卡内,因此选项卡保留在底部)。当我切换到另一个选项卡,然后我返回到第一个选项卡,我仍然在该子页面。 有没有办法永远去根。问题是在子页面内部我也有链接,因此Ionic 2 - How do I get back to the start page of a given tab上的解决方案对我不起作用,因为当我点击孩子中的新页面时,他也将我重定向到根目录。
还有其他解决方案吗?
答案 0 :(得分:0)
您好,我不是那么合格,但推送
后弹出页面怎么样答案 1 :(得分:0)
我不确定这是否是修复它的最佳方法,但它应该有效。假设这是包含所有选项卡的页面:
<ion-tabs>
<ion-tab [root]="chatRoot" (ionSelect)="onSelected(0)" tabTitle="First tab"></ion-tab>
<ion-tab [root]="chatRoot" (ionSelect)="onSelected(1)" tabTitle="First tab"></ion-tab>
<ion-tab [root]="chatRoot" (ionSelect)="onSelected(2)" tabTitle="First tab"></ion-tab>
</ion-tabs>
在组件代码中:
import { Events } from 'ionic-angular';
// ...
constructor(public events: Events) {}
public onSelected(index: number): void {
if(index) this.events.publish('TabSelected');
}
所以基本上,当用户选择除第一个标签以外的任何标签(索引等于0)时,我们会发布一个事件。
在FirstTab中,我们可以订阅该事件,并使用this.navCtrl.popToRoot()
关闭该标签内打开的页面:
// FirstTabCode
import { NavController, Events } from 'ionic-angular';
// ...
constructor(public navCtrl: NavController, public events: Events) {
this.events.subscribe('TabSelected', () => { this.navCtrl.popToRoot(); });
}
ngOnDestroy() {
this.events.unsubscribe('TabSelected');
}