Tengo un conjunto de datos de aproximadamente 1000 elementos en la memoria e intento crear un localizador para este conjunto de datos, pero no estoy seguro de cómo hacerlo.
Estoy usando una función de filtro personalizada para filtrar los resultados, y eso funciona bien, pero de alguna manera necesito obtener el número de páginas.
¿Alguna pista?
angularjs
pagination
Micael
fuente
fuente
Respuestas:
Bootstrap de interfaz de usuario angular - Directiva de paginación
Echa un vistazo a la interfaz de usuario Bootstrap 's directiva de paginación . Terminé usándolo en lugar de lo que se publica aquí, ya que tiene suficientes características para mi uso actual y tiene una especificación de prueba exhaustiva para acompañarlo.
Ver
Controlador
He hecho un plunker de trabajo para referencia.
Versión heredada:
Ver
Controlador
He hecho un plunker de trabajo para referencia.
fuente
pagination
elemento.Recientemente implementé la paginación para el sitio Construido con angular. Puede ver la fuente: https://github.com/angular/builtwith.angularjs.org
Evitaría usar un filtro para separar las páginas. Debe dividir los elementos en páginas dentro del controlador.
fuente
Use your downvotes whenever you encounter an egregiously sloppy, no-effort-expended post, or an answer that is clearly and perhaps dangerously incorrect.
He tenido que implementar la paginación varias veces con Angular, y siempre fue un poco doloroso para algo que sentí que podía simplificarse. He usado algunas de las ideas presentadas aquí y en otros lugares para crear un módulo de paginación que haga que la paginación sea tan simple como:
Eso es. Tiene las siguientes características:
items
a los enlaces de paginación.ng-repeat
, para que pueda usar cualquier expresión que pueda usarse de manera válida en unng-repeat
, incluido el filtrado, el ordenamiento, etc.pagination-controls
directiva no necesita saber nada sobre el contexto en el quepaginate
se llama la directiva.Demostración: http://plnkr.co/edit/Wtkv71LIqUR4OhzhgpqL?p=preview
Para aquellos que buscan una solución "plug and play", creo que les resultará útil.
Código
El código está disponible aquí en GitHub e incluye un buen conjunto de pruebas:
https://github.com/michaelbromley/angularUtils/tree/master/src/directives/pagination
Si está interesado, también escribí un breve artículo con un poco más de información sobre el diseño del módulo: http://www.michaelbromley.co.uk/blog/108/paginate-almost-anything-in-angularjs/
fuente
Acabo de hacer un JSFiddle que muestra paginación + búsqueda + orden en cada columna usando el código de btford: http://jsfiddle.net/SAWsA/11/
fuente
new_sorting_order
debería sernewSortingOrder
. Solucione eso, agregue el@scope.search();
, y verá que las cosas se ordenan como se esperaba, y los iconos de clasificación también se actualizan. (Ejecute el violín con la consola de depuración de su navegador abierta (en Chrome, F12, pestaña de la consola) y es obvio).He actualizado Scotty.NET de plunkr http://plnkr.co/edit/FUeWwDu0XzO51lyLAEIA?p=preview para que utilice las nuevas versiones de angular, angular-ui, y de arranque.
Controlador
Componente de interfaz de usuario de Bootstrap
fuente
Esta es una solución javascript pura que he incluido como un servicio angular para implementar la lógica de paginación como en los resultados de búsqueda de google.
Demostración de trabajo en CodePen en http://codepen.io/cornflourblue/pen/KVeaQL/
Detalles y explicaciones en esta publicación de blog
fuente
He extraído los bits relevantes aquí. Este es un localizador tabular 'sin lujos', por lo que no se incluye la clasificación o el filtrado. Siéntase libre de cambiar / agregar según sea necesario:
fuente
Debajo de la solución bastante simple.
Aquí está la muestra jsfiddle
fuente
El adaptador angular móvil jQuery tiene un filtro de paginación en el que puede basarse.
Aquí hay un violín de demostración que lo usa (agregue más de 5 elementos y se paginará): http://jsfiddle.net/tigbro/Du2DY/
Aquí está la fuente: https://github.com/tigbro/jquery-mobile-angular-adapter/blob/master/src/main/webapp/utils/paging.js
fuente
Para cualquiera que tenga dificultades para crear un paginador para una tabla, publico esto. Entonces, en tu opinión:
En tu angularJs:
fuente
Uso esta biblioteca de paginación de terceros y funciona bien. Puede hacer fuentes de datos locales / remotas y es muy configurable.
https://github.com/michaelbromley/angularUtils/tree/master/src/directives/pagination
fuente
Desde Angular 1.4, el
limitTo
filtro también acepta un segundo argumento opcional.begin
De los documentos :
Por lo tanto, no necesita crear una nueva directiva . Este argumento se puede usar para establecer el desplazamiento de la paginación.
fuente
Puede hacerlo fácilmente con la directiva Bootstrap UI.
Esta respuesta es una modificación de la respuesta dada por @ Scotty.NET, he cambiado el código porque la
<pagination>
directiva está en desuso ahora.El siguiente código genera la paginación:
Para hacerlo funcional, use esto en su controlador:
Consulte esto para obtener más opciones de paginación: Directiva de paginación de la interfaz de usuario de Bootstrap
fuente
ng-repetir paginación
fuente
Los mensajes anteriores recomendaban básicamente cómo construir una paginación usted mismo. Si eres como yo y prefieres una directiva terminada, acabo de encontrar una excelente llamada ngTable . Es compatible con la clasificación, el filtrado y la paginación.
Es una solución muy limpia, todo lo que necesita en su opinión:
Y en el controlador:
Enlace a GitHub: https://github.com/esvit/ng-table/
fuente
Paginación angular
es una elección maravillosa
fuente
Antigua pregunta, pero dado que creo que mi enfoque es un poco diferente y menos complejo, compartiré esto y espero que alguien además de mí lo encuentre útil.
Lo que encontré como una solución fácil y pequeña para la paginación es combinar una directiva con un filtro que usa las mismas variables de alcance.
Para implementar esto, agregue el filtro en la matriz y agregue el directiv así
p_Size y p_Step son variables de alcance que se pueden personalizar en el alcance; de lo contrario, el valor predeterminado de p_Size es 5 y p_Step es 1.
Cuando se cambia un paso en la paginación, el p_Step se actualiza y activará un nuevo filtrado por el filtro cust_pagination. El filtro cust_pagination luego corta la matriz según el valor p_Step como se muestra a continuación y solo devuelve los registros activos seleccionados en la sección de paginación
DEMO Vea la solución completa en este plunker
fuente
Ahí está mi ejemplo. Botón seleccionado en el medio de la lista Controlador. config >>>
Lógica para la paginación:
y mi punto de vista sobre bootstap
Es útil
fuente
Desearía poder comentar, pero tendré que dejar esto aquí:
La respuesta de Scotty.NET y el rehacer user2176745 para versiones posteriores son geniales, pero ambos pierden algo en lo que se rompe mi versión de AngularJS (v1.3.15):
no está definido en $ scope.makeTodos.
Como tal, reemplazar con esta función lo arregla para versiones angulares más recientes.
fuente
fuente
Me gustaría agregar mi solución que funciona
ngRepeat
y los filtros que usa con ella sin usar una$watch
matriz en rodajas.¡Los resultados de su filtro serán paginados!
En el HTML, asegúrese de aplicar sus filtros
ngRepeat
antes del filtro de paginación.fuente