Saltar al contenido

En Angular, necesito buscar objetos en un array

Luego de tanto luchar pudimos hallar la solución de esta preocupación que muchos usuarios de nuestro sitio presentan. Si tienes algún detalle que compartir puedes compartir tu comentario.

Solución:

Puede utilizar el servicio de $filter existente. Actualicé el violín arriba http://jsfiddle.net/gbW8Z/12/

 $scope.showdetails = function(fish_id) 
     var found = $filter('filter')($scope.fish, id: fish_id, true);
     if (found.length) 
         $scope.selected = JSON.stringify(found[0]);
      else 
         $scope.selected = 'Not found';
     
 

La documentación angular está aquí http://docs.angularjs.org/api/ng.filter:filter

Sé si eso te puede ayudar un poco.

Aquí hay algo que traté de simular para ti.

Echa un vistazo a jsFiddle;)

http://jsfiddle.net/migontech/gbW8Z/5/

Creó un filtro que también puede usar en ‘ng-repeat’

app.filter('getById', function() 
  return function(input, id) 
    var i=0, len=input.length;
    for (; i

Uso en el controlador:

app.controller('SomeController', ['$scope', '$filter', function($scope, $filter) 
     $scope.fish = [category:'freshwater', id:'1', name: 'trout', more:'false',  category:'freshwater', id:'2', name:'bass', more:'false']

     $scope.showdetails = function(fish_id)
         var found = $filter('getById')($scope.fish, fish_id);
         console.log(found);
         $scope.selected = JSON.stringify(found);
     
]);

Si hay alguna pregunta, házmelo saber.

Para agregar a la respuesta de @migontech y también a su dirección su comentario de que "probablemente podría hacerlo más genérico", aquí hay una manera de hacerlo. Lo siguiente le permitirá buscar por cualquier propiedad:

.filter('getByProperty', function() 
    return function(propertyName, propertyValue, collection) 
        var i=0, len=collection.length;
        for (; i

La llamada a filtrar se convertiría entonces en:

var found = $filter('getByProperty')('id', fish_id, $scope.fish);

Tenga en cuenta que eliminé el operador unario (+) para permitir string-coincidencias basadas...

Nos puedes favorecer nuestra publicación mostrando un comentario o dejando una puntuación te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Respuestas a preguntas comunes sobre programacion y tecnología