IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

Champ de recherche via pipe


Sujet :

Angular

  1. #1
    Membre éclairé
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Par défaut Champ de recherche via pipe
    Bonjour,
    Sur une page qui affiche une liste d'éléments, j'ai mis un champ de recherche permettant de filtrer cette liste.
    Je suis parti d'un exemple que j'ai trouvé ici => https://stackblitz.com/edit/angular-...Fapp.module.ts.
    Je l'ai reproduit sur un projet à part et il fonctionne très bien.

    J'ai donc essayé de l'appliquer à mon projet et j'ai l'erreur suivante qui s'affiche à la console : TypeError: Cannot read properties of undefined (reading 'toLowerCase').
    Visiblement la transformation en minuscule pose problème mais je ne vois pas pourquoi.

    Voici le champ de recherche et la façon dont j'applique le filtre sur mes données:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ...
     <div class="row"> 
            <div class="offset-10 col-md-2 mt-25">
                <input type="search"  [(ngModel)]="search">
            </div>
        </div>
    ...
    <tr *ngFor="let truck of (trucks | filter:search)">
                    <td>{{truck.name}}</td>
                    <td>{{truck.commercialMail}}</td>
                    <td>{{truck.phone}}</td>
                    <td><button type="button" id="details" class="btn btn-details" (click)="getTruckDetails(truck.id)">Details</button></td>
                    <td><button type="button" id="update" class="btn btn-update">Update</button></td>
                    <td><button type="button" id="delete" class="btn btn-danger">Delete</button></td>
                </tr>

    Voici le code du filtre (pipe) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import { Pipe, PipeTransform } from '@angular/core';
     
    @Pipe({
      name: 'filter'
    })
    export class FilterPipe implements PipeTransform {
     
      transform(value: any, searchValue: string): any {
     
        if (!searchValue) return value;
        return value.filter((v:any) => v.name.toLowerCase().indexOf(searchValue.toLowerCase()) > -1 || v.size.toLowerCase().indexOf(searchValue.toLowerCase()) > -1)
     
      }
    }
    J'ai essayé de debugger. Je rentre bien dans le filtre dès l'entrée d'une première lettre dans le champ de recherche.
    Le paramètre value contient bien mon tableau de données et le paramètre searchValue contient bien la valeur recherchée.

    Quelque chose doit m'échapper mais je ne vois pas quoi.

    Merci pour votre aide.

  2. #2
    Membre éclairé
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Par défaut
    Problème résolu. Ayant repris l'exemple tel quel, la recherche se fait aussi sur le champ size.
    Je n'ai pas ce champ dans mon objet.
    Sinon fonctionne parfaitement.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Guillemets et champ de recherche
    Par zermatt dans le forum Access
    Réponses: 2
    Dernier message: 22/01/2007, 09h01
  2. recherche via un interval de temps (trimestre / semestre)
    Par erwan.bodere dans le forum Requêtes
    Réponses: 6
    Dernier message: 13/09/2006, 13h34
  3. Recherche sur un champ et recherche suivant
    Par DurDur dans le forum Access
    Réponses: 4
    Dernier message: 10/03/2006, 23h17
  4. Ajout de champs à une table via un script ?
    Par mathias dans le forum Access
    Réponses: 1
    Dernier message: 05/12/2005, 23h02
  5. champ de recherche
    Par k_boy dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/03/2005, 08h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo