Angular 如何只过滤离子2上对象的名称?

Angular 如何只过滤离子2上对象的名称?,angular,ionic2,angular2-pipe,Angular,Ionic2,Angular2 Pipe,我有个问题。我有一个城市列表,但当我使用搜索栏时,我只想显示同名的城市 目前我正在尝试: <ion-searchbar [(ngModel)]="selectedCity" [showCancelButton]="shouldShowCancel" (ionCancel)="onCancel($event)"> </ion-searchbar> <ion-item *ngFor="let city of cit

我有个问题。我有一个城市列表,但当我使用搜索栏时,我只想显示同名的城市

目前我正在尝试:

   <ion-searchbar
      [(ngModel)]="selectedCity"
      [showCancelButton]="shouldShowCancel"
      (ionCancel)="onCancel($event)">
    </ion-searchbar>

  <ion-item *ngFor="let city of cities | orderBy: name | filter: selectedCity">
          <ion-label>{{city.name}}</ion-label>
    <button (click)="onActive(city.detalhe.id)" *ngIf="city.active" ion-button outline item-right>Desativar</button>
    <button (click)="onActive(city.detalhe.id)" *ngIf="!city.active" ion-button outline item-right>Ativar</button>
        </ion-item>

{{city.name}
德萨蒂瓦
阿提瓦尔
但我知道它永远不会起作用,因为我将对象城市发送到管道“过滤器”而不是名称,我如何才能只发送管道的名称?我需要“onActive”方法的对象

管道:

@Pipe({
name: "filter",
pure: false
})

export class FilterArrayPipe implements PipeTransform {

transform(items: Array<any>, conditions: {[field: string]: any}): Array<any> {
    return items.filter(item => {
        for (let field in conditions) {
            if (item[field] !== conditions[field]) {
                return false;
            }
        }
        return true;
    });
}
}
@管道({
名称:“过滤器”,
纯:假
})
导出类FilterArraype实现PipeTransform{
转换(项:数组,条件:{[field:string]:any}):数组{
返回项目。筛选器(项目=>{
for(让字段进入条件){
如果(项目[字段]!==条件[字段]){
返回false;
}
}
返回true;
});
}
}

“selectedCity”是一个字符串。当我用其他弦试着把管子拔出来时,它就起作用了。另一点,我需要过滤,比较对象的名称,但在此之后我需要整个对象。

首先,看起来您需要发送到过滤器。第一个是文字“name”,第二个selectedCity在*ngFor of中不带引号。 然后您可以按项目[字段]!==进行筛选selectedCity-其中字段将包含“name”

我想您已经从


您也在order by example链接中看到了下面的评论。。。避免将管道用于orderby。。在组件中执行此操作。我个人会在组件级别解决这两个问题。

您能编辑管道吗?我不知道怎么做。