Existe la necesidad de cargar el mismo componente para dos rutas diferentes.
Explicación Introduzco una variable sessionStorage para verificar si la aplicación cargada es Híbrida o no agregando el siguiente código a la aplicación CMS.
let isHybridRouteCheck = !!sessionStorage.getItem('isHybrid'); Entonces, si el componente se está cargando a través de la aplicación CMS, entonces mostraría isHybrid: true .
Y en el caso de una aplicación Angular pura, no obtendría isHybrid , por lo que el valor será false (¡en lugar de nulo debido a !! )
Definición de rutas
Rutas Híbridas
const HYBRID_Routes: Routes = [ { path: 'landing', component: LandingComponent } ... ];Rutas angulares
const PURENG_Routes: Routes = [ { path: 'parent/org/companyname', redirectTo: 'parent/org/companyname/landing', pathMatch: 'full' }, { path: 'parent/org/companyname/landing', component: LandingComponent } ]Módulo de aplicación TS
¿Es posible pasar rutas a RouterModule como el siguiente código?
Para mí, el siguiente código arroja un error de rutas que no coinciden en caso de que el valor sea false para isFwbHybridRouteCheck . Hubiera considerado PURENG_Routes . ¿no es así?
@NgModule({ imports: [ RouterModule.forRoot(isHybridRouteCheck ? HYBRID_Routes: PURENG_Routes, { useHash: true }) ] });La solución es simple :) Cuando obtiene valor de localStorage, es un valor de cadena, por lo que cuando intenta convertirlo en valor booleano es igual a verdadero siempre . Boolean('true') === true, Boolean('false') === true también. Intente: const isHybrid = localStorage.getItem('isHybrid') === 'true' ;