[Resuelto] Problema Filtro Angular JS

Iniciado por str_null, 1 Septiembre 2015, 01:35 AM

0 Miembros y 1 Visitante están viendo este tema.

str_null

Hola, vengo con una duda a ver si alguien puede echarme una mano.

Estoy con una galería de imagenes. El funcionamiento es como sigue. Primero aparece una imagen para cada coleccion. Si el usuario pulsa una de las imagenes abre una ventana modal con todas las fotos de la coleccion. Si el usuario pulsa una de las fotos de la coleccion se abre en grande esa foto.

Bien, tengo mas o menos todo montado y va bien pero no logro saber como hacer un filtro dinámico que muestre solo las fotos de la coleccion que el usuario pulsa para concretar os copio el código la idea que llevo.

Asi declaro el objeto de la galeria con las rutas y la coleccion que pertenece cada imagen. Pongo una aunque imaginais son mas.

Código (javascript) [Seleccionar]

$scope.galleryItems = [
   {"portada" : true,  "collection" : 1, "miniature" : "rutaminiatura.jpg", "source" : rutaimagen.jpg", "alt" : "textoalt"},
 
   ];


Uso ng-repeat en la galeria para listar primero las portadas, que son el link digamos a cada coleccion:
Código (html4strict) [Seleccionar]

<div ng-repeat="galleryItem in galleryItems | startFrom : (currentPage - 1) * pageSize | limitTo : pageSize | filter: {portada : true}">

<img src="{{galleryItem.miniature}}" alt="{{galleryItem.alt}}" ng-click="showCollection($index, {{galleryItem.collection}})"></img>


En caso de hacer click a una coleccion llama la funcion showCollection a la que paso el indice y la coleccion que tiene que mostrar. La funcion showCollection muestra una ventana modal asi:
Código (javascript) [Seleccionar]

$scope.showCollection=function (index, Ncollection) {
 alert(Ncollection);
 $scope.numCollection = Ncollection;

 var modalInstance = $modal.open({
     templateUrl: 'views/gallery-collection.html',
     controller:'GalleryCollectionCtrl',
         resolve: {
                   galleryObj: function() {
                       return $scope.galleryItems;
                   },
                   ind: function() {
                     return index + ($scope.currentPage-1)*$scope.pageSize;
                   },
                 
           }
       });


Y ahora viene cuando la matan, ese template contiene lo siguiente

Código (html4strict) [Seleccionar]
<section class="gallery">
<ul class="row">

<li class="col-xs-12 col-sm-4" ng-repeat= "galleryItemC in galleryItemsC | [i][b]filterCollection : true[/b][/i]">
<p>{{$scope.numCollection}}ASDASD</p>
<img role="button" src="{{galleryItemC.miniature}}" ng-click="showModal($index)" />
</li>

</ul>
<i ng-click="cancel()" class="exit fa fa-times"></i>
</div>
</div>
</section>


He intentado añadir un filtro que no ha funcionado en negrita lo marco es el siguiente

Código (javascript) [Seleccionar]
.filter ('filterCollection', function() {
 return function(data) {
   return data.collection == $scope.numCollection;
 }


Aun asi no funciona. Pero mi duda es como creeis que puedo hacer para filtrar solo las imagenes de una coleccion cuyo valor almaceno en una variable y llega al controlador que controla el template. A partir de ahi como la uso para aplicarla a un filtro? Algo se me escapa.. a ver si podeis echarme un cable. Un saludo!
Las aulas educan pero el tiempo enseña

str_null

Ok, releyendo el mensaje he visto el fallo. Me había dejado de pasar la variable al controlador realmente por los puentes que hace al cambiar de controlador en cada ventana modal..andaba rayado y era una chorrada, en fin, gracias igual... Saludos
Las aulas educan pero el tiempo enseña