elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Temas
Páginas: [1]
1  Programación / Desarrollo Web / [Resuelto] Problema Filtro Angular JS en: 1 Septiembre 2015, 01:35 am
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
  1. $scope.galleryItems = [
  2.    {"portada" : true,  "collection" : 1, "miniature" : "rutaminiatura.jpg", "source" : rutaimagen.jpg", "alt" : "textoalt"},
  3.  
  4.    ];
  5.  

Uso ng-repeat en la galeria para listar primero las portadas, que son el link digamos a cada coleccion:
Código
  1. <div ng-repeat="galleryItem in galleryItems | startFrom : (currentPage - 1) * pageSize | limitTo : pageSize | filter: {portada : true}">
  2.  
  3. <img src="{{galleryItem.miniature}}" alt="{{galleryItem.alt}}" ng-click="showCollection($index, {{galleryItem.collection}})"></img>
  4.  

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
  1. $scope.showCollection=function (index, Ncollection) {
  2.  alert(Ncollection);
  3.  $scope.numCollection = Ncollection;
  4.  
  5.  var modalInstance = $modal.open({
  6.      templateUrl: 'views/gallery-collection.html',
  7.      controller:'GalleryCollectionCtrl',
  8.          resolve: {
  9.                    galleryObj: function() {
  10.                        return $scope.galleryItems;
  11.                    },
  12.                    ind: function() {
  13.                      return index + ($scope.currentPage-1)*$scope.pageSize;
  14.                    },
  15.  
  16.            }
  17.        });
  18.  

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

Código
  1. <section class="gallery">
  2. <ul class="row">
  3.  
  4. <li class="col-xs-12 col-sm-4" ng-repeat= "galleryItemC in galleryItemsC | [i][b]filterCollection : true[/b][/i]">
  5. <p>{{$scope.numCollection}}ASDASD</p>
  6. <img role="button" src="{{galleryItemC.miniature}}" ng-click="showModal($index)" />
  7. </li>
  8.  
  9. </ul>
  10. <i ng-click="cancel()" class="exit fa fa-times"></i>
  11. </div>
  12. </div>
  13. </section>

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

Código
  1. .filter ('filterCollection', function() {
  2.  return function(data) {
  3.    return data.collection == $scope.numCollection;
  4.  }

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!
2  Programación / Desarrollo Web / Duda de concepto directivas AngularJS en: 18 Agosto 2015, 02:32 am
Saludos a todos, es mi primer mensaje  :rolleyes:.  :rolleyes: :rolleyes:
Aunque ciertamente no soy tan nuevo, pues sigo el foro cuanto puedo a modo lammer sobre todo como podreís observar,y puedo dar fé y lo hago de que sois todos muy majos y el contenido aquí no podía ser mejor, la verdad. De echo querría aportar mas pero con la de máquinas que hay por aquí la opción de leeros me parece bastante mejor. Aun así aprovecho y gracias a todos los que aportais que de verdad es un esfuerzo  ;-) ;-) ;-)

Dicho eso, y para no ser menos cuando me decido a escribir vengo con una duda, como buen lammer, una duda existencial acerca de las directivas en Angular JS a la hora de crearlas.

Todavía estoy muy verde al respecto, considero, pero ahí andamos dándole caña.

Os explico un poco estuve 'juegando' con algunos ejemplos y no se si puede ser algún error de concepto a la hora de entenderlo porque reviso manuales y tal parece que lo entiendo pero luego me cuesta bastante dar con los errores en las funciones y objetos mas simples y me atasco a menudo. Me gustaría aparte de que seguiré leyendo documentación y currando saber un poco si alguien por aquí que lo lleve al día o lo utilice en el ámbito profesional si puede darme consejos mas prácticos y tal o un poco su visión general del método por ver si empiezo a aproximarme mas o entiendo otros puntos de vista, los conceptos clave, tips y eso.

Concrétamente como os comentaba me he decidido a escribiros porque no he logrado rular una directiva que he pillado por la web a modo de ejemplo y que creo que es bastante simple aquí os dejo el body. Tengo por CDNs para angular la versión mas nueva aunque he probado con alguna anterior tambien y nada. Lo mismo Jquery.

Código
  1. <body ng-app="myApp">
  2. <cosa>
  3. <ul>
  4. <li ng-repeat="user in users">
  5. <p>{{user.nombre}} {{user.profesion}} {{user.edad}}</p>
  6. </li>
  7. </ul>
  8. </cosa>
  9. var myApp = angular.module('myApp', []);
  10. /* http para json */
  11. myApp.directive('cosa', function ($http)
  12. {
  13. return {
  14. restrict: 'E',
  15. templateUrl: 'angularJS_directivas_02.html',
  16. link: function (scope)
  17. {
  18. //obtenemos la información del archivo data.json
  19. $http.get('data.json').success(function (data)
  20. {
  21. //pasamos los datos a la vista con scope
  22. scope.users = data;
  23. });
  24. }
  25. };
  26. });
  27.  
  28. </body>
  29.  

La idea es que saca la tabla de un json externo mediante una directiva. Se me queda en algún bucle y con el debugger del chrome las veces que he podido entrar no salía nada. Quizá sea alguna chorrada pero para echarnos las risas estamos :D

Un saludo y muchas gracias de antemano!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines