How to find the count of items in an ngFor after the pipes have been applied

前端 未结 9 1675
面向向阳花
面向向阳花 2020-12-06 04:18

I have an ngFor creating rows in a table that is both filtered and paged.



        
9条回答
  •  北海茫月
    2020-12-06 05:02

    In my case i needed to run through the filtered elements and run some analysis.

    My Solutions is to simply pass in a function and return the array on the last pipe. You could also just create a pipe especially for this but i have added it to my last pipe in the filters:

    HTML

     
    

    Component

    this.jobFilter = {
      jobStatuses: {},  // status labels
      ordering: 'asc',
      selectedEmployee: {},
      selectedStatus: {}, // results status
      fn: this.parseFilteredArr
    };
    
    parseFilteredArr(arr) {
      console.log(arr);
    }
    

    Pipe

    import { Pipe, PipeTransform } from '@angular/core';
    @Pipe({
      name: 'dateOrder'
    })
    export class DateOrderPipe implements PipeTransform {
     transform(value: any, args?: any): any {
       const arr = Array.isArray(value)
        ? value.reverse()
        : value;
      args.fn(arr);
      return arr;
    }
    }
    

    As you can see i have called the function in the pipe

    args.fn(arr);

    and now can process it in the controller.

提交回复
热议问题