2016-12-07 26 views
0

这是我想要实现的,我想添加Tabs组件到我的项目中,但是我不希望在我登录到页面的其余部分之前显示标签。我做的是这样的:如何隐藏ionic2仅适用于登录页面的选项卡?

我app.component.ts:

export class MyApp { 
    public rootPage: any = TabsPage; 

    constructor(platform: Platform) { 

    if (localStorage.getItem("currentUser") === null) { 
     console.log("not logged in"); 
     this.rootPage = LoginPagePage; 
    } else { 
     console.log("already logged in"); 
     this.rootPage = TabsPage; 
    } 

    platform.ready().then(() => { 
     // Okay, so the platform is ready and our plugins are available. 
     // Here you can do any higher level native things you might need. 
     StatusBar.styleDefault(); 
     Splashscreen.hide(); 
    }); 
    } 
} 
下面

是我tabs.ts:

export class TabsPage { 

    public tab1Root: any; 
    public tab2Root: any; 
    public tab3Root: any; 

    constructor() { 
    this.tab1Root = HomePage; 
    this.tab2Root = AboutPage; 
    this.tab3Root = ExplorePage; 
    } 

} 

那么这里就是我的tabs.html:

<ion-tabs> 
    <ion-tab [root]="tab1Root" tabTitle="Home" tabIcon="home"></ion-tab> 
    <ion-tab [root]="tab2Rsoot" tabTitle="About" tabIcon="information-circle"></ion-tab> 
    <ion-tab [root]="tab3Root" tabTitle="Contact" tabIcon="contacts"></ion-tab> 
</ion-tabs> 

当我这样做时,第一次加载时显示正常,标签不显示。再经过我登录,我也设置

this.navCtrl.setRoot(HomePage); 
在我的登录功能

,但选项卡不会显示出来,而我已经登录,那旁边,我必须刷新页面,有“标签”出现。它发生在我注销的时候......如何解决这个问题?我想标签在每一页显示,除了我的登录页面

回答

2

一切是正确的登录尝试的的研制成功后做

改变这种

this.navCtrl.setRoot(Homepage,{}) 

这个

this.navCtrl.setRoot(TabsPage,{}) 

一切将工作正常,不要忘记导入您的标签页在您的登录页面

+0

谢谢,它工作男人!当我注销时如何? 我已将setRoot放入我的登录页面,为什么选项卡仍然存在? this.navCtrl.setRoot(LoginPagePage); –

+0

http://stackoverflow.com/questions/40245759/how-to-avoid-tabs-on-footer-when-redirecting-to-next-page检查它会做的伎俩,如果你认为答案我会很高兴。 –

相关问题