En angle, Qu'est-ce que' pathmatch: full ' et quel effet a-t-il?
ici, il est utilisé comme pathmatch complet et quand je supprime ce pathmatch, il ne charge même pas l'application ou n'exécute pas le projet
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { WelcomeComponent } from './home/welcome.component';
/* Feature Modules */
import { ProductModule } from './products/product.module';
@NgModule({
imports: [
BrowserModule,
HttpModule,
RouterModule.forRoot([
{ path: 'welcome', component: WelcomeComponent },
{ path: '', redirectTo: 'welcome', pathMatch: 'full' },
{ path: '**', redirectTo: 'welcome', pathMatch: 'full' }
]),
ProductModule
],
declarations: [
AppComponent,
WelcomeComponent
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
2 réponses
pathMatch = 'full' se traduit par un succès de route lorsque les segments restants, non appariés, de la correspondance D'URL sont le chemin de préfixe
pathMatch = 'prefix' indique au routeur de correspondre à la route de redirection lorsque L'URL restante avec le chemin de préfixe de la route de redirection.
Ref: https://angular.io/guide/router#redirecting-routes
pathMatch: 'full'
signifie que tout le chemin D'URL doit correspondre et est consommé par l'algorithme de correspondance des routes.
pathMatch: 'prefix'
signifie que la première route où le chemin correspond au début de L'URL est choisie, mais alors l'algorithme de correspondance de route continue à chercher des routes d'enfant correspondantes où le reste de L'URL correspond.
RouterModule.forRoot([
{ path: 'welcome', component: WelcomeComponent },
{ path: '', redirectTo: 'welcome', pathMatch: 'full' },
{ path: '**', component: 'pageNotFoundComponent' }
])
Cas 1 pathMatch: "à part entière": Dans ce cas, lorsque l'application est lancée sur localhost: 4200 (ou un serveur), la page par défaut sera l'écran de bienvenue, puisque l'url sera
Si charabia ceci redirigera vers l'écran pageNotFound à cause du caractère de remplacement(chemin:'**')
Cas 2 - pathMatch:'prefix':
si les routes ont { path:", redirectTo: 'welcome', pathMatch:' prefix'}, maintenant cela n'atteindra jamais le chemin de Joker puisque chaque url correspondra au chemin: '' défini.