0

ionic2 + angular2 で検索機能を実装したいと考えています。以前のバージョンではThis Filter Exampleを使用 していましたが、新しいバージョンでは機能しません。

angular2 + ionic2 でどのように動作しますか?

4

1 に答える 1

3

検索バー コンポーネントを使用できます。この作業プランカーを見てください。

使い方はとても簡単です。最初にComponent、ビューに表示するアイテムのリストがあることを確認してください。

import { Component } from "@angular/core";
import { NavController } from 'ionic-angular/index';

@Component({
     templateUrl:"home.html"
})
export class HomePage {

  constructor() {
    this.initializeItems();
  }

  initializeItems() {
    this.items = [
      'Amsterdam',
      'Bogota',
      'Buenos Aires',
      'Dhaka'
    ];
  }

  getItems(ev) {
    // Reset items back to all of the items
    this.initializeItems();

    // set val to the value of the searchbar
    let val = ev.target.value;

    // if the value is an empty string don't filter the items
    if (val && val.trim() != '') {
      this.items = this.items.filter((item) => {
        return (item.toLowerCase().indexOf(val.toLowerCase()) > -1);
      })
    }
  }
}

そのコードでわかるように、魔法は次のコード行で行われています。

// if the value is an empty string don't filter the items
if (val && val.trim() != '') {
  this.items = this.items.filter((item) => {
    return (item.toLowerCase().indexOf(val.toLowerCase()) > -1);
  })
}

そのため、何かを入力するたびに、検索バーに入力した内容を含むアイテムがフィルター処理されます。次に、ビューに次のコードを追加します。

<ion-header>
  <ion-navbar primary>
    <ion-title>
      Ionic 2
    </ion-title>
  </ion-navbar>
</ion-header>
<ion-content>
  <ion-searchbar (ionInput)="getItems($event)"></ion-searchbar>
  <ion-list>
    <ion-item *ngFor="let item of items">
      {{ item }}
    </ion-item>
  </ion-list>

</ion-content>

次のようにして、要素からメソッドにionInputイベントをバインドしていることに注意してください。ion-searchbargetItems

(ionInput)="getItems($event)
于 2016-08-01T12:55:51.550 に答える