2
votes

Redirection d'URL angulaire

Lorsque l'entrée utilisateur accueil ou navigation par onglets doit aller sur la page de connexion.

const appRoutes: Routes = [
  {
    path: 'tab-navigation',
    redirectTo: 'login',
    pathMatch: 'full'
  },
  {
    path: 'home',
    redirectTo: 'login',
    pathMatch: 'full'
  },
  {
    path: '',
    redirectTo: 'login',
    pathMatch: 'full'
  },
  {
    path: '**',
    redirectTo: 'error404',
  }
];

Cette logique fonctionne lorsque l'entrée est «» ou quelque chose comme ça «dfd45657d». Pourquoi ne pas travailler pour la maison et la navigation par onglets?


8 commentaires

essayez de supprimer pathMatch: 'full' pour la navigation par onglets et la maison


@Ben Thie C'est ce que j'ai essayé en premier. Pas de travail.


de plus, vous n'avez pas de chemin pour 'login', avez-vous eu quelque chose comme: chemin: 'login', composant: LoginComponent


Vous avez besoin d'un composant associé à votre itinéraire login


Essayez d'utiliser Remove Pathmatch de la navigation par onglets et de l'accueil


@veben J'essaye d'associer le composant à la route de connexion. Ne fonctionne toujours pas.


@Ubiquitous Developers Je supprime pathmatch. Le résultat est le même.


Pouvez-vous fournir un exemple minimal reproductible fonctionnel avec StackBlitz qui présente le comportement?


3 Réponses :


1
votes

si vous aviez une URL de connexion dans vos itinéraires, je suppose que puisque login correspond à '**', cela peut avoir quelque chose à voir avec deux redirection successives.

mais si vous êtes vraiment n'a pas ajouté d'URL de connexion, vous devrez peut-être en ajouter une ...

const appRoutes: Routes = [
  {
    path: 'tab-navigation',
    redirectTo: 'login',
    pathMatch: 'full'
  },
  {
    path: 'home',
    redirectTo: 'login',
    pathMatch: 'full'
  },
  {
    path: '',
    redirectTo: 'login',
    pathMatch: 'full'
  },
 {
    path: 'login',
    component: 'loginComponent',
  },
  {
    path: '**',
    redirectTo: 'error404',
  }
];


2 commentaires

Ne fonctionne pas Même lorsque je quitte {path: 'tab-navigation', redirectTo: 'login', pathMatch: 'full'}, le résultat est le même.


avez-vous une URL de connexion déclarée?



0
votes

essayez ceci

const appRoutes: Routes = [
  {
    path: 'tab-navigation',
    redirectTo: '',
    pathMatch: 'full'
  },
  {
    path: 'home',
    redirectTo: '',
    pathMatch: 'full'
  },
  {
    path: '',
    redirectTo: 'login',
    pathMatch: 'full'
  },
  {
    path: '**',
    redirectTo: 'error404',
  }
];


1 commentaires

Ne fonctionne pas Même lorsque je quitte {path: 'tab-navigation', redirectTo: 'login', pathMatch: 'full'}, le résultat est le même.



2
votes

Tout d'abord, vous devez créer un composant associé pour la connexion.

Deuxièmement, matchpath ne vous affecte pas ici. donc que vous le gardiez ou non, aucun effet.

Essayez ceci:

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { LoginComponent } from '../login/login.component';

const routes: Routes = [
  {
    path: 'tab-navigation',
    redirectTo: 'login'
  },
  {
    path: 'home',
    redirectTo: 'login'
  },
  {
    path: '',
    redirectTo: 'login',
    pathMatch: 'full'
  },
  {
    path : 'login',
    component : LoginComponent
  },
  {
    path: '**',
    redirectTo: 'error404',
  }
];
@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})

export class RouteModule { }

Lien de travail: https://stackblitz.com/edit/angular-nbajga?file=src%2Fapp%2Froute % 2Froute.module.ts


0 commentaires