1
我對基於用戶可應用的某些過濾器過濾數組或離子列表有疑問。你能不能給我一個關於如何做到這一點的方法,以及實現這個目標的最佳方法是什麼?我想要一個亞馬遜提供的類似功能。看下面的截圖。謝謝。Ionic 2 - 在離子列表上應用過濾器
我對基於用戶可應用的某些過濾器過濾數組或離子列表有疑問。你能不能給我一個關於如何做到這一點的方法,以及實現這個目標的最佳方法是什麼?我想要一個亞馬遜提供的類似功能。看下面的截圖。謝謝。Ionic 2 - 在離子列表上應用過濾器
首先你想添加一個popover(這是在離子2只是另一個頁)。在此頁面中,您可以創建要過濾的項目。
頁之間的溝通,爲您要篩選的項目和類別的酥料餅的頁面,以濾除頁面將與離子2的navParams
控制器和/或onDidDissmis
呼叫在酥料餅的控制器來完成
項頁
import { Component } from '@angular/core';
import { NavController, NavParams, PopoverController } from 'ionic-angular';
import { FilterItemsPage } from '../../config/config.pages';
@Component({
selector: 'items-page',
templateUrl: 'items-page.html'
})
export class ItemsPage {
filteredItems:any;
constructor(public navCtrl: NavController, public navParams: NavParams,
public popoverCtrl:PopoverController) {}
openPopover(){
let popover = this.popoverCtrl.create(FilterItemsPage);
popover.onDidDismiss(data => {
this.filteredItems = data
});
popover.present();
}
}
所以,當你點擊openPopover()
它將會在酥料餅,然後用戶可以選擇的項目作爲篩選打開FilterItemPage
頁。所選過濾器項目隨後需要傳回到主項目頁面(點擊後),該過濾器項目將交給onDidDissmiss
供彈出窗口使用。你可以通過選擇是(並且現在在filteredItems
保持)在popover
頁面中的項目持有這些項目,並收集他們在navParams
- 見下文
// Passing items that have already been added
let popover = this.popoverCtrl.create(FilterItemsPage,this.filteredItems);
現在在酥料餅的頁面(FilterItemsPage)
import { Component } from '@angular/core';
import { NavController, NavParams, ViewController } from 'ionic-angular';
import { ItemsPage } from '../../config/config.pages';
@Component({
selector: 'filter-items-page',
templateUrl: 'filter-items-page.html'
})
export class FilterItemsPage {
PassedFilteredItems:any;
itemsToFilterBy:any;
constructor(public navCtrl: NavController, public navParams: NavParams,
public viewCtrl: ViewController) {
this.PassedFilteredItems = this.navParams.data;
console.log('Items Page:', this.PassedFilteredItems);
}
openPopover(){
let popover = this.popoverCtrl.create(FilterItemsPage);
popover.onDidDismiss(data => {
this.filteredItems = data
});
popover.present();
}
onSelectFilterOrSaveFilteredCollection(){
// Get selected items from a form (of model)
// See angular reactive forms
// https://angular.io/docs/ts/latest/guide/reactive-forms.html
// Pass items on dismiss
// will be passed into onDidDismiss
this.viewCtrl.dismiss(itemsToFilterBy);
}
}
謝謝。這實際上是我用過的。 –