Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

unidades:05_filtros:03_listas [2014/08/07 08:51]
admin [orderBy]
unidades:05_filtros:03_listas [2014/08/30 10:21] (actual)
admin
Línea 5: Línea 5:
   * [[#​limitTo]]:​ Limita el número de elementos de un array   * [[#​limitTo]]:​ Limita el número de elementos de un array
   * [[#​filter]]:​ Filtra los datos del array.   * [[#​filter]]:​ Filtra los datos del array.
 +
 +Lo normal es usar estos filtros dentro de la directiva ''​ng-repeat''​ para modificar la manera en que se muestran los elementos de una tabla.
  
 ===== orderBy ===== ===== orderBy =====
Línea 13: Línea 15:
 ''​%%{{array | orderBy:'​propiedad'​ %%}}''​ ''​%%{{array | orderBy:'​propiedad'​ %%}}''​
  
-Siendo ''​propiedad''​ el nombre de la propiedad del objeto de cada elemento del array por la que queremos ordenar. Si queremos ordenar por mas de una columna pondremos un array de Strings+Siendo ''​propiedad''​ el nombre de la propiedad del objeto de cada elemento del array por la que queremos ordenar. Si queremos ordenar por más de una columna pondremos un array de Strings
  
 ''​%%{{array | orderBy:​['​propiedad1','​propiedad2',​...,'​propiedadn'​] %%}}''​ ''​%%{{array | orderBy:​['​propiedad1','​propiedad2',​...,'​propiedadn'​] %%}}''​
Línea 51: Línea 53:
 </​sxh>​ </​sxh>​
  
-Si queremos ordenar en vez de forma ascendente de forma descendente no tenemos ​mas que incluir el signo "​-"​ menos delante del nombre de la columna:+Si queremos ordenar en vez de forma ascendente de forma descendente no tenemos ​más que incluir el signo "​-"​ menos delante del nombre de la columna:
  
 <sxh html> <sxh html>
Línea 61: Línea 63:
  
 <note tip> <note tip>
-AngularJS tambien permite crear tu propia función de ordenación pero no vamos a mas sobre ella ya que la encuentro ​un poco compleja de usar.+AngularJS tambien permite crear tu propia función de ordenación pero no vamos a ver nada sobre ella ya que la encuentro compleja de usar lo que la hace poco útil.
 </​note>​ </​note>​
-===== filter ​===== + 
-Filtra ​el array para que el array resultante solo tenga ciertos datos del array original+ 
 +<note warning>​ 
 +Un problema de este filtro es que al ordenar no tiene en cuenta los acentos o cosas similares, por lo que por ejemplo las letras con acentos irán después de todas las letras //​normales//​. 
 + 
 +En el ejemplo que hay a continuación fíjate cómo la última provincia que se muestra es "​Badajoz"​ y no aparece "​Ávila"​  
 +</​note>​ 
 +===== limitTo ​===== 
 +Este filtro permite limitar ​el nº de elementos ​que se muestran ​del array.
  
 **formato:​** **formato:​**
  
-''​%%{{unidades:%% valor filter:expresion ​%%}}%%''​+''​%%{{array limitTo:numero ​%%}}''​
  
-Siendo ''​expresion'' ​una expresión ​que filtrará los datos del array.+Siendo ''​numero'' ​el nº de elementos ​que queremos mostrar ​del array.
  
 Veamos ahora un ejemplo: Veamos ahora un ejemplo:
Línea 76: Línea 85:
 Supongamos los siguientes datos Supongamos los siguientes datos
 <sxh js> <sxh js>
-    $scope.valores ​= [{ +    ​$scope.provincias ​= [{ 
-        idProvincia1+      ​codProvincia"​02"​
-        nombre: "Valencia+      nombre: "Albacete
-    }, { +    }, { 
-        idProvincia2+      ​codProvincia"​03"​
-        nombre: "Castellón+      nombre: "Alicante/​Alacant
-    }, { +    }, { 
-        idProvincia3+      ​codProvincia"​04"​
-        nombre: "Alicante    +      nombre: "Almería  
     }];     }];
 </​sxh>​ </​sxh>​
  
-podemos mostrar ​solo aquellas ​provincias ​cuyo nombre contenga una "​t"​ mediante la siguiente expresión:+podemos mostrar ​sólo las 2 primeras ​provincias ​con:
  
-<​sxh ​js+<​sxh ​html
-{{unidades: valores ​filter:{ nombre:'​t' ​} }}+      <​tr ng-repeat="​provincia in provincias ​limitTo:2">​ 
 +        <td>{{provincia.codProvincia}}</​td>​ 
 +        <​td>​{{provincia.nombre}}</​td>​ 
 +      </tr>
 </​sxh>​ </​sxh>​
 +
 +Si el valor es negativo lo que muestra es los '​n'​ últimos elementos del array en vez de los '​n'​ primeros.
 +
 +Podemos mostrar sólo las 2 últimas provincias con:
 +<sxh html>
 +      <tr ng-repeat="​provincia in provincias | limitTo:​-2">​
 +        <​td>​{{provincia.codProvincia}}</​td>​
 +        <​td>​{{provincia.nombre}}</​td>​
 +      </tr>
 +</​sxh>​
 +
 +<note tip>
 +Recuerda que ''​limitTo''​ permite números negativos para indicar que se muestran los '​n'​ últimos elementos del array.
 +</​note>​
 +
 +
 +<note tip>
 +Aunque está en la documentación oficial de AngularJS, el filtro ''​limitTo''​ también se puede aplicar a Strings. En ese caso lo que hace es mostrar los "​n"​ primeros/​últimos caracteres del String.
 +</​note>​
 +===== filter =====
 +Ya que el filtro [[unidades:​05_filtros:​04_filter|filter]] dispone de tantas opciones, le hemos dedicado el [[unidades:​05_filtros:​04_filter|siguiente tema]] completo a él.
  
 ===== Ejemplo ===== ===== Ejemplo =====
Línea 100: Línea 133:
 ===== Referencias ===== ===== Referencias =====
   * [[https://​docs.angularjs.org/​api/​ng/​filter/​orderBy|/​ API Reference / ng / filter / orderBy]]   * [[https://​docs.angularjs.org/​api/​ng/​filter/​orderBy|/​ API Reference / ng / filter / orderBy]]
-  * [[https://​docs.angularjs.org/​api/​ng/​filter/​filter|/ API Reference / ng / filter / filter]]+  * [[https://​docs.angularjs.org/​api/​ng/​filter/​limiTo|/ API Reference / ng / filter / limiTo]]
unidades/05_filtros/03_listas.1407394263.txt.gz · Última modificación: 2014/08/07 08:51 por admin
Ir hasta arriba
CC Attribution-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0