Как использовать @Input для установки Pipe в директиве * ngFor - PullRequest
0 голосов
/ 30 августа 2018

У меня есть компонент с 3 входными параметрами

  1. json_columns
  2. json_rows
  3. name_filter

Как я могу сделать так, чтобы name_filter был установлен в качестве канала для фильтрации этой группы данных?

component.ts

@Input('json_columns') columns:[{}];
@Input('json_rows') rows:[{}];

//Pipe 
@Input('name_filter') filter:string;

component.html

<tr *ngFor="let item of filas | filter: searchItem; let i=index" >
{{item.nombre}}
</tr>

1 Ответ

0 голосов
/ 31 августа 2018

Один из способов сделать это - создать функцию «getFilas ()» и внедрить фильтр в функцию

См. Этот пример: https://stackblitz.com/edit/angular-filter-data-in-component

Это шаблон

<div *ngFor="let item of getData(); let i=index">
    {{i}} -  {{item.name}} {{ item | json }}
</div>

Это соответствующий код в компоненте

  @Input() field: string;
  @Input() value: string;
  @Input() data: any[];

  getData() {
    return this.data.filter((item) => {
      return item[this.field] == this.value;
    })
  }
...