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);
}
}
谢谢。这实际上是我用过的。 –