У меня есть угловой канал, который просто отфильтровывает текст из ngFor.Он очень хорошо работает с одним уровнем объекта json, но не работает, когда есть многоуровневый объект.
Труба:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'simpleSearch' })
export class SimpleSearchPipe implements PipeTransform {
public transform(value, keys: string, term: string) {
if (!term) return value;
return (value || [])
.filter(item =>
keys.split(',').some(key => {
item.hasOwnProperty(key) && new RegExp(term, 'gi').test(item[key])
})
);
}
}
шаблон:
<div *ngFor="let issue of issuesData
| simpleSearch: 'key,fields.summary,fields.priority.name': searchTerm"
></div>
Здесь поиск работает очень хорошо для поля "ключ" (1-й уровень объекта json), но не 'Т работает для других ключей.
Может кто-нибудь, пожалуйста, помогите мне исправить это или, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.