如何按 Angular 数组中的属性过滤对象?

我有一个元素,它是一个数组。我想通过在数组中过滤来显示其中一个对象的标题。像:

<p>{{ element | myFilter:'type':'Type1').title }}</p>

所以我尝试创建一个管道过滤器:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'myFilter',
    pure: false
})
export class MyFilterPipe implements PipeTransform {
    transform(items: any[], filter: Object): any {
        if (!items || !filter) {
            return items;
        }
        return items.filter(item => item.title.indexOf(filter.type) !== -1);
    }
}

但这没有用。

我的阵列:

[
      {
       "type": "Type1",
       "title": "Message 1"
      }, 
      {
       "type": "Type2",
       "title": "Message 2"
      }
]

我想展示的是类型 1 的标题。比如:

<p>{{ element | myFilter:'type':'Type1').title}}</p>

如何在 Angular 中做到这一点?

闪电战

汤姆缪尔

您将数据错误地传递到管道中,括号也放置不正确。您应该修复括号并将数据作为字符串传递:

<p>{{ (element | myFilter: 'Type1').title }}</p>

此外,您正在根据错误的属性过滤管道。使用管道的更新数据输入,它应该只是:

export class MyFilterPipe implements PipeTransform {
  transform(items: any[], filter: string): any {
    if (!items || !filter) {
      return items;
    }
    return items.find(item => item.type === filter);
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何编写Angular ngFor管道以按对象属性过滤对象数组?

如何从Angular中的另一个对象过滤基于属性的对象数组?

如何在VueJS中按对象属性过滤对象数组

如何在Angular2对象数组中基于属性值进行过滤?

如何在Angular ng-repeat中按类别键过滤数组中的对象

Angular:我如何通过对象数组通过属性过滤Rxjs?

如何按对象数组中的所有属性过滤?

如何按属性过滤对象数组

如何使用自定义管道在Angular中按属性值对对象数组进行排序?

如何避免对angular js中的某些对象属性进行过滤

如何过滤数组中对象的属性

按数组属性的属性过滤对象数组

按属性值过滤数组中的对象 - Javascript

lodash 按 Angular 5 数组过滤对象数组

如何通过属性数组从列表对象中过滤多个对象?

Angular:如何过滤嵌套对象的属性?

按对象属性过滤对象数组

如何使用jq按元素属性值过滤对象数组?

如何按对象数组jsonb字段中的特定属性过滤记录

如何在JS中按对象过滤对象数组

如何过滤同一属性中的对象数组?

如何基于对象数组中的属性进行多级过滤

如何从属性中的键值对过滤对象数组

如何根据特定的动态属性过滤反应中的对象数组?

如何在AngularJS中按对象中的特定属性过滤?

按数量属性过滤对象数组

按对象属性动态过滤数组

Typescript 按重复属性过滤对象数组

如何在AngularJS中按对象的属性过滤?