si nous effaçons la valeur d'entrée du nombre (rendez-la vide), idéalement, le filtre ne devrait pas être appliqué et toutes les valeurs devraient être répertoriées. À l'heure actuelle, si nous appliquons un filtre en mettant le nombre, disons 5 dans la zone de saisie, cela fonctionne bien et toutes les données correspondant à 5 sont répertoriées. Maintenant, si nous effaçons la valeur dans la zone de saisie, idéalement toutes les valeurs devraient être répertoriées (pas de filtre) mais angular applique un filtre nul pour les nombres et tout est filtré (ng-repeat ne répertorie rien).
type d'entrée = "nombre" ng-model = "âge"
Remarque: aucun problème avec type = saisie de texte
(Comme vous l'avez mentionné) cela se produit parce que input[number]
assigne null
au modèle lorsque le champ est vide.
S'attendre à ce que cela fonctionne comme vous l'attendez est raisonnable (imo), mais je ne sais pas comment nous pourrions y remédier.
Le corriger du côté du filtre n'est pas souhaitable, car null
peut être une valeur valide à rechercher (et nous ne pouvons pas la traiter comme non définie). Le réparer sur le NgModelController
n'est probablement pas non plus une solution viable.
@others : Pensées?
En attendant, vous pouvez utiliser cette solution de contournement (pas si belle):
<input type="number" ng-model="search.posts" />
...
<div ng-repeat="user in users | filter:((search.posts===null)?undefined:search)">...</div
Nous retournons null
car le retour de undefined
partir d'un analyseur définit une erreur d'analyse. Une autre raison pour laquelle ce n'est pas la meilleure conception.
@Narretz J'allais demander pourquoi nous ne retournons pas undefined
:-)
Je sais que cet article est un peu vieux mais j'ai vraiment eu du mal à trouver comment résoudre ce problème, alors je veux partager ma solution. Ajoutez un événement oninput à votre champ de saisie et dans la fonction javascript, vérifiez si la valeur de ce champ est une chaîne vide, si c'est le cas, supprimez la valeur du champ de saisie avec:
supprimer document.getElementById ('peu importe'). value;
Je ne pense pas que les attributs HTMLInputElement sont censés être configurables
Commentaire le plus utile
(Comme vous l'avez mentionné) cela se produit parce que
input[number]
assignenull
au modèle lorsque le champ est vide.S'attendre à ce que cela fonctionne comme vous l'attendez est raisonnable (imo), mais je ne sais pas comment nous pourrions y remédier.
Le corriger du côté du filtre n'est pas souhaitable, car
null
peut être une valeur valide à rechercher (et nous ne pouvons pas la traiter comme non définie). Le réparer sur leNgModelController
n'est probablement pas non plus une solution viable.@others : Pensées?
En attendant, vous pouvez utiliser cette solution de contournement (pas si belle):
Violon de démonstration