soy saltarse salta quitar pasar omitir google evitar evadir eliminar como chrome accede abreviada javascript angularjs angular-ui angular-ui-bootstrap angular-ui-router

javascript - saltarse - ¿Cómo cambiar la URL cuando se busca con UI Router?



salta el captcha y accede a la url abreviada (1)

Tengo un proyecto Angular JS que usa Angular UI-Router que está funcionando bien, pero estoy tratando de implementar la directiva de paginación UI Bootstrap y no puedo encontrar la estrategia correcta.

Tengo una tabla de datos que se muestra de 1 página a la vez y tengo la directiva de paginación que muestra la cantidad correcta de enlaces de página. Cuando hace clic en un enlace obtiene el nuevo número de página y realiza una llamada Restangular a la API para obtener los nuevos registros y los vincula a la tabla.

Todo está funcionando bien, pero obviamente cuando hojeas los datos, la URL no cambia, por lo que el usuario no puede usar los botones de navegación hacia atrás / adelante para navegar su historial. Idealmente, me gustaría utilizar las siguientes URL:

/contacts /contacts/page-2 /contacts/page-3

También me gustaría incluir la ordenación en la URL, pero esa es otra pregunta.

Podría lograr esto, pero haciendo la transición manual a un nuevo estado cuando se haga clic en uno de los botones de paginación, pero eso volvería a cargar el controlador y todos sus contenidos, haciendo llamadas ajax adicionales al servidor y haciendo feos flashes de contenido sin estilo como recreó el control de paginación, etc.

Idealmente, podría cambiar la URL y agregar un estado de historial, pero sin activar un cambio de estado real y volver a cargar / ejecutar el controlador para esa vista. No estoy seguro si esto es posible, y mucho menos cómo hacerlo.

¿Alguien tiene alguna idea?


Esto es fácilmente alcanzable con $ stateParams

Por ejemplo

$stateProvider .state(''contacts'',{ url: ''/contacts'', templateUrl: ''contacts.html'' }).state(''contacts.paginated'', { url: "/contacts/page-:pageNum", templateUrl: ''contacts.html'', controller: function ($stateParams) { // If we got here from a url of /contacts/page-2 expect($stateParams).toBe({pageNum: 2}); } })

Yo elegiría un esquema de paginación diferente, sin embargo, ambos / contacts / page / 1 o / contacts? Page = 1 ambos son fácilmente alcanzables con ui-router