es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Oracle Jet 11 – Equivalente de canEnter DetailedRouteConfig (Ojet 3.2)

En Oracle Jet 3.2 solía poder especificar si un usuario usa una ruta o no:

self.routingInfo = ko.observable({
    'signin': {label: 'Iniciar sesión', canEnter: true, isDefault: true},
    'home': {label: 'Inicio', canEnter: true},
    'adminPage': {label: 'Admin', canEnter: self.isAdmin},                    
});

En Oracle Jet 11, la sintaxis de las rutas y del enrutador principal parece ser ligeramente diferente y no parece que pueda usar “canEnter” en los detalles de la ruta (el código proviene de la plantilla predeterminada del navdrawer).

let navData = [
    { path: '', redirect: 'dashboard' },
    { path: 'dashboard', detail: { label: 'Tablero', iconClass: 'oj-ux-ico-bar-chart' } },
    { path: 'incidents', detail: { label: 'Incidentes', iconClass: 'oj-ux-ico-fire' } },
    { path: 'customers', detail: { label: 'Clientes', iconClass: 'oj-ux-ico-contact-group' } },
    { path: 'about', detail: { label: 'Acerca de', iconClass: 'oj-ux-ico-information-s' } }
];

La documentación de OracleJet aquí: https://www.oracle.com/webfolder/technetwork/jet/jsdocs/CoreRouter.html#CreateOptions

no me proporciona los parámetros “detail” que puedo utilizar (por ejemplo, label, iconClass, …).

¿Cómo puedo simular el comportamiento de “canEnter” en OracleJet 11 CoreRouter?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    En Oracle Jet 11, la funcionalidad de canEnter ha sido reemplazada por la característica de Guardia de Navegación. Esta característica te permite ejecutar una función antes de enrutar hacia una ruta específica.

    Para imitar el comportamiento de canEnter en Oracle Jet 11 CoreRouter, puedes crear una función de Guardia de Navegación y especificarla en los detalles de la ruta. Aquí tienes un ejemplo:

    let navData = [
      { path: '', redirect: 'dashboard' },
      { path: 'dashboard', detail: { label: 'Tablero', iconClass: 'oj-ux-ico-bar-chart', canActivate: function() { return true; } } },
      { path: 'incidents', detail: { label: 'Incidentes', iconClass: 'oj-ux-ico-fire', canActivate: function() { return isLoggedIn(); } } },
      { path: 'customers', detail: { label: 'Clientes', iconClass: 'oj-ux-ico-contact-group', canActivate: function() { return isLoggedIn() && isAdmin(); } } },
      { path: 'about', detail: { label: 'Acerca de', iconClass: 'oj-ux-ico-information-s', canActivate: function() { return true; } } }
    ];
    
    function isLoggedIn() {
      // Tu función de verificación de inicio de sesión
      return true;
    }
    
    function isAdmin() {
      // Tu función de verificación de administrador
      return true;
    }
    

    En este ejemplo, la función canActivate se llama antes de enrutar hacia una ruta específica. Puedes especificar tu lógica en esta función para permitir o evitar que el usuario acceda a la ruta.

    Ten en cuenta que también puedes especificar una función canDeactivate para ejecutar antes de abandonar una ruta.

Comments are closed.