2 votes

indexof n'est pas une fonction dans typescript alors que le filtre est basé sur le nombre.

Lorsque j'essaie de filtrer la valeur du mois sur la liste déroulante, il montre indexof() n'est pas une fonction. Le code est

@Pipe({
    name: "monthFilter",
})
export class MonthStatusPipe implements PipeTransform {
      transform(array: any[], query: number): any {  
        console.log("query", query);
        if (query) {
            return _.filter(array, row => row.LicenseMonth.indexOf(query) > -1);
        }
        return array;
    }
}

Existe-t-il une autre méthode pour filtrer la liste déroulante en fonction des valeurs

Mes données json sont :

{
    "BusinessId": 1549,
    "OrganizationNumber": "992060867",
    "CompanyName": "Litra Containerservice AS ",
    "Address": "Industrigata 62",
    "Zipcode": "2619 Lillehammer",
    "Mobile": "98238925",
    "Telephone": "66789485",
    "ConnectedTo": "Admin",
    "ConnectedToId": "123",
    "HSEManager": "Marina Magerøy",
    "BusinessContact": "Lars Andre Skogstad",
    "ContactMobile": "48499613",
    "BusinessContactTelephone": "45283769",
    "NoOfEmployees": "15",
    "Status": "Active",
    "ModifiedOn": "2016-10-01T23:55:01.033",
    "LicenseMonth": 10,
    "Category": "Godstransport på vei"
  },

1voto

Dan Revah Points 2960

C'est dû au fait que LicenseMonth est en fait un nombre.

cela devrait fonctionner :

@Pipe({name: 'monthFilter'})
export class MonthStatusPipe implements PipeTransform {
      transform(arr: any[], num?: number): any {
        return typeof num !== 'undefined' 
           ? arr.filter(e => e.LicenseMonth === num)
           : arr;
    }
}

Je voudrais également suggérer une approche plus générique, au lieu d'utiliser un tuyau spécifique pour un champ spécifique.

Vous pourriez plutôt écrire une solution plus générique. Par exemple :

<p>{{ rows | filterBy: ['LicenseMonth']: 42 }}</p>

Il est possible d'écrire votre propre version, ou d'utiliser une bibliothèque que j'ai écrite avec un tas de tuyaux utiles.

ngx-pipes : https://github.com/danrevah/ngx-pipes

tuyau filterBy : https://github.com/danrevah/ngx-pipes#filterby

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X