фильтрация по трубе: Ошибка разбора шаблона Angular4 - PullRequest
0 голосов
/ 21 октября 2018

это мой первый раз с "pipe", так что я думаю, что пропустил несколько вещей:
У меня есть JSON-файл, который содержит данные о продуктах.товары могут быть отсортированы по "ProductTags" - JSON с тегом, по которому их можно фильтровать.Кроме того, у меня есть JSON, который содержит подробную информацию о фильтре:

"PriceFilter": [
{
    "TagId": 20,
    "Type": "Budget",
    "Value": 5,
    "Values": null,
    "DisplayText": "$5",
    "Order": null
},
{
    "TagId": 21,
    "Type": "Budget",
    "Value": 10,
    "Values": null,
    "DisplayText": "$10",
    "Order": null
}]

product:

"Products": [
{
    "ProductId": 206419,
    "ProductTitle": "Mom is Fabulous Fruit Box - Good",
    "ProductTags": [ 20, 2, 3, 4 ]
}]

Мне нужно заказать продукты, используя теги следующим образом: price

магазин.html

<table>
    <tr *ngFor="let P of PriceFilter | filter : term | orderBy: 'Price'">
        <td>{{PriceFilter.DisplayText}}</td>
    </tr>
</table>

компонент магазина:

stores=[];
products=[];

PriceFilter = [];
GenderFilter =[];
filtered=[];
constructor(private _storeService:StoreService) { }

ngOnInit() {
    this._storeService.getProducts()
       .subscribe(data =>{
           this.products = data.Stores.Products;
           this.stores=data.Stores;
           this.PriceFilter = data.PriceFilter;
           this.GenderFilter = data.GenderFilter;
           console.log(data.PriceFilter)
           console.log(data.GenderFilter)
           console.log(data.Stores)
       });     
}

труба фильтра:

transform(items: any[], term): any {
    console.log('term', term);

    return term 
        ? items.filter(item => item.ProductTags.indexOf(term) !== -1)
        : items;
}

труба orderBy:

export class OrderbyPipe implements PipeTransform {

transform(items: any[], orderBy: string): any {
    console.log('orderdBy', orderBy);

    return items.sort((a, b) => {return b[orderBy] - a[orderBy]});
}
...