Comment utiliser la case à cocher pour filtrer les résultats Angulaire?
Je suis en train d'appliquer un filtre à l'aide de cases à cocher.
Les cases sont affichées correctement:
<div data-ng-repeat="cust in customers">
<input type="checkbox" data-ng-model="search.city" data-ng-true-value="{{ cust.city }}" data-ng-false-value=""/> {{ cust.city }}
</div>
mais quand cochant la case, rien ne se passe:
<table>
<!-- table heading goes here -->
<tbody>
<tr data-ng-repeat="customer in customers | filter : search">
<td >
{{ customer.firstName }}
</td>
<td >
{{ customer.lastName }}
</td>
<td >
{{ customer.address }}
</td>
<td >
{{ customer.city }}
</td>
</tr>
</tbody>
</table>
Le tableau montre tous les clients.
Ce que je veux réaliser est: lorsqu'un ou plusieurs cases sont cochées, le tableau a pour afficher uniquement les lignes qui correspondent à la condition de l'coché des cases à cocher.
Que dois-je faire pour obtenir ce travail?
OriginalL'auteur Martijn | 2013-05-12
Vous devez vous connecter pour publier un commentaire.
On dirait que vous êtes en fournissant une liste de clients, et lorsque l'un ou plusieurs est sélectionné, l'affichage d'un tableau de clients qui sont dans la même ville que ceux de vos clients qui sont sélectionnés.
Pour ce faire, vous aurez besoin d'un filtre personnalisé:
Votre balisage changer en quelque chose comme ceci:
Vous pouvez le voir, il travaille à ce Plunker: http://plnkr.co/edit/GlHRLKECR4jeBS7Vf7TX?p=preview
J'ai mis à jour ma réponse. Le changement a été négligeable:
if(checkedCustomers.length == 0) { return customers; }
fondamentalement le retour de tous les clients si aucun n'a été vérifié. J'espère que tout fait sens pour vous & laissez-moi savoir si vous avez besoin de rien expliqué.C'est exactement ce que je veux. Je comprends presque everyhtinh, à l'exception de ce
$filter('filter')(customers, {checked: true});
Pourriez-vous expliquer un peu plus?Dans AnguarJS, vous pouvez utiliser le $service de filtre dans le HTML des Templates, ou dans le script lui-même. AngularJS fournit un ensemble de filtres eux-mêmes tels que monnaie, minuscules, etc pour conveinence souci. Ils fournissent également le filtre "filtre" qui est ce que j'utilise ici dans le JavaScript. Lisez la documentation pour le service de filtre + filtre fourni "filtre" pour plus d'informations.
pour éviter
cannot read property 'length' of undefined
erreur si vos données sont à venir à partir de l'api web, vous avez pour vérifierif (!angular.isUndefined(customers))
OriginalL'auteur JayQuerie.com
Vous pouvez passer d'une fonction à la AngularJS filtre. Par exemple:
Vous mettre des balises d'entrée:
Ensemble de votre filtre:
Dans votre contrôleur:
Si vous souhaitez afficher tous les clients au démarrage, il suffit de l'initialiser
$scope.search
aveccity
de lacustomers
tableau.Voici un exemple de Plunker.
"Si vous souhaitez afficher tous les clients au démarrage, il suffit de l'initialiser $champ d'application.recherche sur la ville de la part des clients de tableau. "Pouvez-vous expliquer cela un peu plus. un exemple pour cela ??
Cette solution ne permet pas de groupe de cases à cocher si 2 ou plusieurs clients qui appartient à la même ville
OriginalL'auteur marcoseu