Почему труба не работает?

Я создал один канал для сортировки массива объектов на основе значения свойства объекта. Все объекты со свойствами show==0 и show==1 удаляются, ошибок нет и их можно увидеть в консоли.

pipe.ts

@Pipe({
    name: 'menufilter'
})
@Injectable()
export class MyMenuFilterPipe implements PipeTransform {
    transform(items: any[], args: any[]): any {
        if (items) {
            return items.filter(item => item.show == '0',console.log(item));
        }
    }

app.html

<tr  *ngFor="let menu of specificmenus|menufilter" >
     <td >{{menu.name}}</td>
</tr>

person Ajith    schedule 27.07.2017    source источник
comment
Вы уверены, что свойство .show является типом строки, а не числом? Между '0' и 0 есть большая разница   -  person CozyAzure    schedule 27.07.2017
comment
@CozyAzure Это 32-битное целое число, я получаю тот же результат в консоли при использовании «0» и 0   -  person Ajith    schedule 27.07.2017
comment
Не могли бы вы воспроизвести проблему в плункере? Судя по тому, что я вижу (и пробовал ваш код), он должен работать нормально :)   -  person AJT82    schedule 27.07.2017


Ответы (2)


Потому что вы ничего не возвращаете

transform(items: any[], args: any[]): any {
    if (items){
      return items.filter(item =>{
        console.log(items)
        return item.show=='0';
      })
      }
    }
person Aravind    schedule 27.07.2017
comment
если вы правильно посмотрите на его синтаксис; он вернул значение. Обозначения с жирными стрелками не требуют ключевого слова return, если у вас нет фигурных скобок. Тем не менее, его передача в console.log в качестве второго аргумента в обратном вызове не повлияет. - person CozyAzure; 27.07.2017

Удалите ",console.log(item)" и повторите попытку!

person jackjoy    schedule 27.07.2017