【问题标题】:Showing a different tab with an if statement on Ionic 2在 Ionic 2 上显示带有 if 语句的不同选项卡
【发布时间】:2017-02-08 17:15:40
【问题描述】:

Ionic 2 似乎与 1 大不相同。我使用了启动项目,这些是我的文件:

Tabs.html

<ion-tabs>
  <ion-tab [root]="tab1Root" tabTitle="Home" tabIcon="home"></ion-tab>
</ion-tabs>

Tabs.ts

import { Component } from '@angular/core';

import { SigninPage } from '../Auth/Signin/Signin';

@Component({
  templateUrl: 'Tabs.html'
})
export class TabsPage {

  tab1Root: any = SigninPage;

  constructor() {

  }
}

app.components.ts

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from 'ionic-native';

import { TabsPage } from '../pages/Tabs/Tabs';

@Component({
    template: `<ion-nav [root]="rootPage"></ion-nav>`
})
export class MyApp {
    rootPage = TabsPage;

    constructor(platform: Platform) {
        platform.ready().then(() => {
            StatusBar.styleDefault();
        });
    }
}

有没有办法用 if 条件显示不同的选项卡?例如,我想根据 if 块显示 Tabs.App.htmlTabs.Auth.html

使用 Ionic 2 的最佳方法是什么?

【问题讨论】:

    标签: ionic-framework ionic2


    【解决方案1】:

    在 ionic2 中,每一页都伴随着它的 .ts 文件。因此,如果您想要 2 个选项卡,app.htmlauth.html,您将需要创建这两个页面及其 .ts 文件。

    这样你就可以写一个 if 语句:

    if(1 > 2){
      this.rootpage = AuthTab;
    }else{
      this.rootpage = AppTab;
    }
    

    ps 不要忘记导入您的组件

    【讨论】:

    • 我在哪里定义这个逻辑?在app.components.ts?
    • 您设置所有选项卡的Thage 页面。可能是app.component,不确定你的设置
    • 我想我必须为 Ionic 2 做这样的事情。$rootScope.$on("$stateChangeStart", (event, toState)。有什么办法吗?基本上我必须在app.components.ts 上监听状态变化事件,如果目标状态以“Auth”开头,我可以将this.rootPage 设置为AuthTab,否则设置为AppTab。监听状态变化事件的新方法是什么?
    猜你喜欢
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    相关资源
    最近更新 更多