J'essaye d'implémenter la barre de recherche en utilisant l'événement angulaire (keyup). Et j'ai le nom de fichier comme
quand je recherche base @ ou base $ ou base 1 dans la barre de recherche, il filtre bien. mais quand je recherche la base # il ne filtre pas la base # il filtre tous les noms de fichiers avec la base. voici le code ci-dessous que j'ai codé
Mon html:
onSearch(event: any) { const keywords = event.target.value; if (keywords && keywords.length > 2) { const apiURL =`abc/thg/hjy?filter[file.name]=${keywords}`; this.api.get(apiURL).subscribe((data: any) => { console.log(data); this.topics = data.list; if (this.trigger) { this.trigger.openMenu(); } }); } else { this.topics = []; this.trigger.closeMenu(); } }
mon code js:
<input type="search" class="form-control" placeholder="Search file" (keyup)="onSearch($event)" [(ngModel)]='searchKeywords'>
3 Réponses :
Je remarque que vous avez un manque dans le balisage HTML.
onSearch(event: any) { ... }
Ensuite, dans le fichier .ts
:
<input type="search" class="form-control" placeholder="Search file" (keyup)="onSearch($event)" [(ngModel)]="searchKeywords">
D ce n'était pas le problème. j'ai édité ma question maintenant. pouvez-vous vérifier maintenant.
Je pense que la valeur est définie correctement dans apiURL
dans la ligne:
const apiURL =`abc/thg/hjy?filter[file.name]=${keywords}`;
Je pense que le problème est la ligne suivante, où vous passez le # (hashtag) sans l'encodage d'URL.
Essayez d'échanger le hashtag avec %23
avant de l'utiliser dans la ligne suivante - votre demande d' get
.
Cela ne devrait pas arriver, vous avez probablement manqué
"
after keyup event attribute(keyup)="onSearch($)"
@PankajParkar ce n'était pas le problème. cela fonctionne bien pour d'autres symboles spéciaux.
Il n'y a rien de mal avec le code. C'est un problème avec # car il est utilisé pour délimiter un URI d'un identifiant de fragment dans URI. Ainsi, le caractère "#" doit être exclu dans celui qui est passé dans l'URL. Donc la base sera traitée comme nulle
@techyaura donc il n'y a aucun moyen que je puisse passer # dans l'URl ??