De acuerdo, tengo un archivo de componentes con una URL de plantilla
Dentro de esa plantilla, TI es la salida del enrutador Eso está bien. ¿Hay alguna forma de cambiar el archivo de ruta del componente si se cumplen algunas condiciones dentro del componente?
la idea principal es verificar si el usuario está en línea, si muestra el índice 1, de lo contrario, muestra el índice 2.
@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { if(USERISONLINE) { changetemplateurl to something else } }Suponiendo que está intentando redirigir a un componente si el usuario ya ha iniciado sesión. Si no es otro componente.
Puedes probar esto.
ngOnInit() { if(USERISONLINE) { this.router.navigate([app/path1]); // whatever the path configured in router if the user is online } else { this.router.navigate([app/path2]); // whatever the path configured in router if the user is not online } }No olvide importar el enrutador y hacer referencia a él - Inyección de dependencia e implementa parte del gancho del ciclo de vida
Pero, la forma recomendada de hacer esto es usar protectores de enrutador ya que esta redirección ocurre en el ciclo de vida OnInit del componente. Pero, para su enfoque, esta respuesta funcionará
Si entendí su escenario correctamente, según el indicador de inicio de sesión, debe realizar dos operaciones separadas
Puede usar routelink si está usando hipervínculos
<li><a [routerLink]="['/Login',{Flag:'Success'}]">Dashboard</a></li>o atributo de componente
<Login [Flag]="Success"></Login>Obtendrá esta bandera en su componente, en función de eso, puede realizar la lógica empresarial en su interior.