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 { }
17
demandé sur Code Whisperer 2017-03-24 08:43:23

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.

28
répondu Pardeep Jain 2018-08-21 19:59:38
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.

1
répondu sai amar 2018-09-26 17:50:57