有没有办法在离子段内加载离子页面?

Is there a way to load ionic pages inside of an ionic segment?

ionic v3 的新手。我有三个离子页面,我试图在离子段内显示它们。我想将页面的功能分开以便于维护。目前我还没有找到解决方法,因为 ionic 不允许在一个页面中使用多个离子内容。还有其他 approach/suggestions/workarounds?

我试过将页面设置为 tabRoots 并在段页面中调用它们

三个页面看起来像:

<ion-content padding>
page design and api calls etc..
</ion-content>

显示选项卡的主页如下所示: 管理-request.html

<app-header heading="Manage Requests"></app-header>
<ion-content padding>
<ion-segment [(ngModel)]="relationship" color="primary">
  <ion-segment-button text-center value="travelrequest"[root]="tab1Root">
Travel Request
  </ion-segment-button>
  <ion-segment-button value="approverequest" [root]="tab2Root">
    Approve Request
  </ion-segment-button>
  <ion-segment-button value="approveexception" [root]="tab3Root">
    Approve Exception
  </ion-segment-button>
</ion-segment>
</ion-content>
<app-footer isCheckStatus="true"></app-footer>

管理-request.ts

    export class ManageRequestPage{
    @ViewChild("manageTabs") manageTabs: Tabs;
    tab1Root = TravelRequestPage;t
    tab2Root = ApproveRequestPage;
    tab3Root = ApproveExceptionRequestPage;
}

预期结果: 当我切换离子段的标签时显示页面内容

我建议你像这样使用 ngSwitch [ngSwitch]="mySegment",这样你就不需要使用 tabRoot 和多个 ion-content 来切换标签。

<ion-header>
  <ion-navbar color="primary">
    <ion-title> Manage Requests </ion-title>
  </ion-navbar>
</ion-header>

<ion-content fullscreen>

<ion-list-header text-center>

<ion-segment [(ngModel)]="mySegment" (ionChange)="segmentChanged(mySegment)">
  <ion-segment-button value="travelrequest">
      <ion-icon name="list"></ion-icon>
  </ion-segment-button>
  <ion-segment-button value="approverequest">
      <ion-icon name="ios-checkmark"></ion-icon>
  </ion-segment-button>
  <ion-segment-button value="approveexception">
      <ion-icon name="close"></ion-icon>
  </ion-segment-button>
</ion-segment>

</ion-list-header>

<div [ngSwitch]="mySegment">

<ion-list *ngSwitchCase="'travelrequest'">
    <ion-item>
        <p> Here is the travelrequest content… </p>
    </ion-item>
</ion-list>

<ion-list *ngSwitchCase="'approverequest'">
    <ion-item>
        <p> Here is the approverequest content… </p>
    </ion-item>
</ion-list>

<ion-list *ngSwitchCase="'approveexception'">
    <ion-item>
        <p> Here is the approveexception content… </p>
    </ion-item>
</ion-list>

</div>

</ion-content>

希望对你有帮助。

您是否考虑过将 "page" 功能放入 angular 组件(而不是成熟的 Ionic "page")?根据我的经验,Ionic "page" 的处理方式不同,可能并不意味着一次显示多个,特别是如果您使用 IonicPage。下面的简单 CLI 命令将生成一个组件。然后把你的 UI/Logic 放在那里,然后把那个元素放在你的 ion-segment.

ionic generate component

Here is a quick example I whipped up on Stackblitz。请注意主页上有 3 个部分,中间部分(书签)中有一个组件。