2016-09-19 5 views
0

Я пытаюсь фильтровать продукты с несколькими из полевых условий (вход & раскрывающийся). Я могу фильтровать их отдельно, но я не могу понять, как заставить их работать вместе..Angular 2.0.0 final - Пользовательская фильтрация труб с несколькими полями полевых условий

Я создал два отдельных пользовательских трубки (один для входного фильтра и один для раскрывающегося фильтра), чтобы сделать вещь более модульной.

Вот логика ввода трубы:

// Input Filter 
transform(value: IProduct[], filter: string): IProduct[] { 
    filter = filter ? filter.toLocaleLowerCase() : null; 
    return filter ? value.filter((product: IProduct) => 
     product.prodName.toLocaleLowerCase().indexOf(filter) !== -1) : value; 
} 

логика позади Dropdown трубы:

// Dropdown Filter 
transform(value: IProduct[], filter: string): IProduct[] { 
    return filter ? value.filter((product: IProduct) => 
     product.prodCategory.indexOf(filter) !== -1) : value; 
} 

Это обычай трубы в окне шаблона:

<tr *ngFor='let _product of _products | DropdownProductFilter: ddlistFilter.name || InputProductFilter: listFilter' 

Ниже приведен пример http://plnkr.co/qwsk86hHLbI26w3HVMdV

ответ

1

Я думаю, что у вас есть опечатка в шаблоне, изменить ваш || к | будет делать трюк:

<tr *ngFor='let _product of _products | DropdownProductFilter: ddlistFilter.name | InputProductFilter: listFilter'> 

 Смежные вопросы

  • Нет связанных вопросов^_^