在我的应用中,我有3个选项卡。在第一个选项卡中,有一个列表,可以推到另一个页面(在同一选项卡中,因此选项卡保留在底部(。当我切换到另一个选项卡时,然后回到第一个选项卡时,我仍处于该子页面。有没有办法始终扎根。问题是,在儿童页面内,我也有链接,所以离子2上的解决方案 - 我如何回到给定标签的开始页面对我不起作用,因为当我时,他也将我重定向到根本上。单击孩子中的新页面。
其他解决方案?
我不确定这是否是解决该问题的最佳方法,但它应该起作用。假设这是包含所有选项卡的页面:
<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(。
。在第一个tab中,我们可以订阅该事件,然后使用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');
}