0

これが私が達成しようとしているものです。プロジェクトにタブコンポーネントを追加したいのですが、ページの残りの部分にログインする前にタブを表示したくありません。私がすることはこのようなものです:

私の 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);

私のログイン機能では、すでにログインしている間はタブが表示されません。その上、「タブ」を表示するにはページを更新する必要があります。私もログアウトしたときに起こります..これを解決するにはどうすればよいですか?ログインページ以外のすべてのページにタブを表示したい

4

1 に答える 1

2

ログインが成功したら、すべてが正しいです

これを変える

this.navCtrl.setRoot(Homepage,{})

これに

this.navCtrl.setRoot(TabsPage,{})

すべて正常に動作します。ログイン ページにタブ ページをインポートすることを忘れないでください。

于 2016-12-07T07:24:02.500 に答える