После нескольких часов поиска в stackoverflow и google я не нашел то, что искал, я нашел что-то, что дало мне представление об альтернативном решении. ПримерAngular2 Фильтр-массив объектов с трубкой с использованием RegExp?
объекта:
items = [
{
title: "This is title",
email: "[email protected]",
status: "confirmed"
},
{
title: "This another one",
email: "[email protected]",
status: "pending"
{
title: "Just a random string",
email: "[email protected]",
status: "pending"
{
]
Разрешение:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filter',
pure: false
})
export class FilterPipe implements PipeTransform {
transform(value: any, args?: any): any {
if(args == '') { return value; }
let query = args.toLowerCase();
return value.filter(task =>
task.title.toLowerCase().indexOf(query) > -1 ||
task.email.toLowerCase().indexOf(query) > -1 ||
task.status.toLowerCase().indexOf(query) > -1
);
}
}
<div *ngFor="item of (items | filter:'this is') ">
{{item | json}}
</div>
Это даст мне:
{title: "This is title", email: "[email protected]",status: "confirmed"}
Он работает, как есть, но мое намерение состояло в том, чтобы заставить его работать с RegExp, я пытался, но по какой-то причине, я получил сообщение об ошибке, когда я уаг что-то = новый RegExp (// некоторое правило).
Любая идея очень ценится.
Какую ошибку вы получаете? –
Что-то новое не является функцией. –