Saltar al contenido principal
Neural UIv2.0.1Documentación
Ver v1 GitHub

URL State

Comparte y restaura el estado de Table, Tabs y Sidebar mediante parámetros reactivos de la URL.

Conecta Angular Router

URL State permite compartir una vista: los parámetros guardan la página seleccionada, la pestaña activa o la navegación abierta. Importa NeuUrlStateService desde @neural-ui/core/url-state e inyéctalo en el componente de aplicación que gobierna esas decisiones. Se proporciona en root; configura Angular Router con provideRouter(tusRutas), sin añadir otro provider del servicio.

Table, Tabs y Sidebar reciben inputs aplicados y emiten propuestas. La aplicación convierte valores validados de la URL en esos inputs y escribe las propuestas aceptadas en la URL. Crea cada signal de getParam una sola vez como propiedad de clase. No necesitas un effect que convierta las lecturas de URL en nuevas escrituras.

example.ts
import { ApplicationConfig } from '@angular/core';
import { provideRouter, Routes } from '@angular/router';

const routes: Routes = []; // Add your application's routes here.

export const appConfig: ApplicationConfig = {
  providers: [provideRouter(routes)],
};

Table: búsqueda, ordenación y paginación

Busca un cliente, ordena una columna o pasa a la página siguiente. La aplicación transforma ordersPage, ordersSize, ordersSearch, ordersSort y ordersDir en NeuTableQuery. Las páginas de la URL empiezan en 1; los índices de Table empiezan en 0. El tamaño y la ordenación se validan contra valores permitidos y la página se limita a las filas coincidentes. Esta receta conserva búsqueda global, ordenación y paginación; filters permanece en null.

Aceptamos queryChange mediante una llamada a patchParams. Escribir reinicia la página y sustituye la entrada actual del historial; ordenar y paginar añaden entradas. Recarga la URL resultante o utiliza Atrás y Adelante para restaurar la consulta aplicada. Código incluye las filas, columnas y etiquetas bilingües compartidas que utiliza el ejemplo.

Table: búsqueda, ordenación y paginación
Atlas 240 EU
Birch 180 US
Cedar 420 EU

ordersPage=1 · ordersSize=3

Tabs: comparte el panel activo

Selecciona Actividad para escribir detailsTab=activity. activeId se deriva de un signal de getParam creado una sola vez; un valor ausente o desconocido selecciona Resumen. activeIdChange escribe únicamente un identificador aceptado. Resumen elimina el parámetro del ejemplo mediante null.

Ambas pestañas crean entradas de historial. Atrás y Adelante actualizan el panel seleccionado mediante activeId sin provocar otra escritura de URL. Recarga o comparte una URL terminada en ?detailsTab=activity para abrir directamente ese panel.

Tabs: comparte el panel activo

Resumen del pedido: 240 €.

detailsTab=—

API del servicio

El servicio expone un signal de solo lectura y cuatro métodos públicos. Las escrituras devuelven void y delegan la navegación a Angular Router; no devuelven una promesa de finalización. Los valores son cadenas y null se reserva para eliminar. setParam y patchParams mezclan los cambios con los demás parámetros de consulta.

setParam agrupa llamadas síncronas en una microtarea. patchParams actualiza valores relacionados en una navegación e incluye los cambios de setParam pendientes. Las escrituras pendientes aparecen en params antes de terminar la navegación; si esta se cancela o un guard la rechaza, pueden restaurarse los valores reales del Router. En un lote, cualquier petición con replaceUrl=false hace que la navegación resultante cree una entrada de historial.

Miembro
Tipo / firma
Comportamiento
paramsreadonly Signal<Params>Mapa reactivo de parámetros, inicializado desde Router.url y actualizado en NavigationEnd. Incluye escrituras pendientes.
getParamgetParam(key: string): Signal<string | null>Lee una clave; null si no existe. Conserva el signal devuelto una sola vez. Valida los valores de URL, incluidos parámetros repetidos.
setParamsetParam(key: string, value: string | null, replaceUrl = true): voidEscribe o elimina una clave; agrupa llamadas síncronas y conserva los demás parámetros. false añade una entrada al historial.
patchParamspatchParams(params: Record<string, string | null>, replaceUrl = true): voidMezcla varias claves en una navegación; null elimina una clave. Incluye cambios de setParam pendientes.
clearParamsclearParams(replaceUrl = true): voidElimina todos los parámetros y descarta cambios de setParam pendientes. Úsalo cuando la aplicación gobierne un reinicio de toda la página.

Historial, validación y reinicio

replaceUrl es true por defecto: sustituye la entrada actual del historial. Pasa false para acciones deliberadas que el usuario deba poder deshacer con Atrás. Reiniciar elimina solo las claves de cada ejemplo mediante patchParams o setParam, conservando las de los demás y cualquier parámetro ajeno. clearParams elimina todos los parámetros y debe reservarse para un reinicio intencional de toda la página.

Trata los valores de URL como cadenas no fiables: valida números, enumeraciones y parámetros repetidos antes de proporcionar inputs. Estos ejemplos aplican valores seguros sin reescribir URLs inválidas al renderizar. Evita secretos o datos personales en parámetros compartidos. Con SSR, deriva el estado inicial de la petición enrutada de manera consistente en servidor y cliente; estas recetas no necesitan localStorage ni acceso a objetos globales del navegador.

Public Types

Consulta las definiciones de los tipos enlazados en esta página.