Dans Angular, j'ai dans la portée un objet qui retourne beaucoup d'objets. Chacun a un identifiant (celui-ci est stocké dans un fichier plat donc pas de DB, et je ne semble pas pouvoir utiliser ng-resource
)
Dans mon contrôleur:
$scope.fish = [
{category:'freshwater', id:'1', name: 'trout', more:'false'},
{category:'freshwater', id:'2', name:'bass', more:'false'}
];
À mon avis, j'ai des informations supplémentaires sur le poisson caché par défaut avec le ng-show
plus, mais lorsque je clique sur l'onglet simple afficher plus, je voudrais appeler la fonction showdetails(fish.fish_id)
. Ma fonction ressemblerait à quelque chose comme:
$scope.showdetails = function(fish_id) {
var fish = $scope.fish.get({id: fish_id});
fish.more = true;
}
Maintenant, dans la vue, plus de détails apparaissent. Cependant, après avoir parcouru la documentation, je ne peux pas comprendre comment rechercher ce fish
tableau.
Alors, comment interroger le tableau? Et dans la console, comment appeler le débogueur pour avoir l' $scope
objet avec lequel jouer?
la source
Vous pouvez utiliser le service $ filter existant. J'ai mis à jour le violon ci-dessus http://jsfiddle.net/gbW8Z/12/
La documentation angulaire est ici http://docs.angularjs.org/api/ng.filter:filter
la source
$scope.selected
est / contient. Faire une recherche rapide sur sélectionné i trouvéng-selected
/ ngSelected:If the expression is truthy, then special attribute "selected" will be set on the element
. Est-ce la même chose? Dans votre exemple, que fait-il? MerciPour ajouter à la réponse de @ migontech et aussi à son adresse son commentaire que vous pourriez "probablement rendre plus générique", voici une façon de le faire. Ce qui suit vous permettra de rechercher par n'importe quelle propriété:
L'appel au filtrage deviendrait alors:
Remarque, j'ai supprimé l'opérateur unaire (+) pour permettre les correspondances basées sur des chaînes ...
la source
Une solution sale et facile pourrait ressembler à
la source
Angularjs a déjà une option de filtre pour ce faire, https://docs.angularjs.org/api/ng/filter/filter
la source
Vos solutions sont correctes mais inutiles compliquées. Vous pouvez utiliser la fonction de filtre javascript pur . Voici votre modèle:
Et c'est votre fonction:
Vous pouvez également utiliser l'expression:
En savoir plus sur cette fonction: LINK
la source
J'ai vu ce fil, mais je voulais rechercher des identifiants qui ne correspondent pas à ma recherche. Code pour faire cela:
la source