web-dev-qa-db-ja.com

Ionic4とIonic3のイオンセグメント

Ionic3に以下の形式のセグメントと以下に示すコードがあります。 Ionic4で同じように実装する方法を教えてください。

Ionic3コード

    <ion-header>
  <ion-navbar>
    <ion-buttons left>
      <button ion-button icon-only menuToggle="user-menu">
        <ion-icon name="menu"></ion-icon>
      </button>
    </ion-buttons>
    <ion-buttons end>
      <button ion-button icon-only (click)="doLogout()">
        <ion-icon name="ios-log-out" color="primary"></ion-icon>
      </button>
    </ion-buttons>
  </ion-navbar>
  <div text-center (click)="editProfile()">
    <img class="user-avatar" src="assets/imgs/avatar.svg" />
  </div>
  <ion-toolbar>
    <ion-segment [(ngModel)]="category" color="primary">
      <ion-segment-button value="official">
        Official Info
      </ion-segment-button>
      <ion-segment-button value="personal">
        Personal Info
      </ion-segment-button>
    </ion-segment>
  </ion-toolbar>
</ion-header>

<ion-content padding>
  <div [ngSwitch]="category">
    <ion-list *ngSwitchCase="'personal'">
      <ion-item>
        <h4>First Name</h4>
        <p>X</p>
      </ion-item>
      <ion-item>
        <h4>Last Name</h4>
        <p>YZ</p>
      </ion-item>
      <ion-item>
        <h4>Phone No</h4>
        <p>(541) 754-3010</p>
      </ion-item>
      <ion-item>
        <h4>Address</h4>
        <p>XYZ 711-2880 Nulla St. Mankato Mississippi 96522</p>
      </ion-item>
    </ion-list>

    <ion-list *ngSwitchCase="'official'">
      <ion-item>
        <h4>User Id</h4>
        <p>Xyz</p>
      </ion-item>
      <ion-item>
        <h4>Email</h4>
        <p>[email protected]</p>
      </ion-item>
      <ion-item>
        <h4>Employer</h4>
        <p>Amazon</p>
      </ion-item>
      <ion-item>
        <h4>Company Name</h4>
        <p>Amazon India</p>
      </ion-item>
      <ion-item>
        <h4>Company Id</h4>
        <p>{{nowDate|date:'hh:mm:a'}}</p>
      </ion-item>
    </ion-list>
  </div>
</ion-content>

enter image description here

Ionic 4コード

    <ion-toolbar>
  <ion-segment (ionChange)="segmentChanged($event)">
    <ion-segment-button value="camera">
      <ion-icon name="camera"></ion-icon>
    </ion-segment-button>
    <ion-segment-button value="bookmark">
      <ion-icon name="bookmark"></ion-icon>
    </ion-segment-button>
  </ion-segment>
</ion-toolbar>

Ionic4オフィスドキュメントでは、セグメントボタンの作成についてのみ言及し、それに基づいてリストを作成する方法を指定していませんでした。 Ionic3を使用した*ngSwitchCaseに似ていますか

2
Anand Raj

以前と同じように_*ngSwitch_を引き続き使用できます。イベント_(ionChange)="segmentChanged($event)"_で行う必要があるのは、[(ngModel)]="category"で行ったように表示する値を変更することです。

このメソッドをコンポーネントに追加します。

_segmentChanged(event) {
  this.category = event;
}
_

「イベント」は、_ion-segment-button value="camera"_に入力したケースの値です。

詳細: https://angular.io/api/common/NgSwitchCase

4
gabfiocchi