9
votes

Angular2 Routeur Config, Prefix Pathmatch ne fonctionne pas

De ce que je comprends de la documentation de routeur angular2, les itinéraires configuration par défaut Stratégie de Pathmatch est "Prefix", Stratégie "préfixe" Pathmatch désigne que le routeur de l'application n'a besoin que de regarder le début de l'URL et de la correspondre à la route appropriée.

Référence: https://angular.io/docs/js/latest/api/Router/index/Routes- type-alias.html #! # Stratégie correspondante p>

On a dit que, avec les configurations ci-dessous, je supposerais que cet itinéraire devrait charger examplecomponent code> si je navigue à / abcdefg code>. p>

Un problème que cela ne fonctionne pas strong>, je ne suis pas sûr de ce qui ne va pas et je ne trouve pas beaucoup d'informations à ce sujet sur Google ou dans @ angular / routeur code> code source. P>

Merci de votre aide. P>

{ path:'abc', pathMatch: 'prefix',
  children: [
    { path:'**', component:ExampleComponent},
  ]
}


0 commentaires

3 Réponses :


4
votes

Cela fonctionnerait si votre trail : "ABC ' itinéraire a eu une route enfant avec chemin:" défaction " ou chemin:" **' ou chemin: 'de' et la route enfant avait un itinéraire avec chemin: "FG" . .

pathmatch: 'complet' signifie que l'ensemble du chemin d'URL doit correspondre et est consommé par l'algorithme correspondant à la route.

pathmatch: "préfixe" signifie, le premier itinéraire où le chemin correspond au début de l'URL est choisi, mais l'algorithme correspondant à l'itinéraire est de continuer à rechercher des itinéraires enfants assortis dans lesquels le reste de la Allumettes d'URL.


2 commentaires

Merci de votre réponse, j'ai essayé votre suggestion, maintenant ABC / DE WORKS, mais pas abcde , je vais mettre à jour la question maintenant pour vous montrer les nouvelles configurations.


Désolé, je n'ai pas expliqué cette partie correctement. Cela n'est censé fonctionner avec abc / de mais pas avec abcde . Dans Praxis Pathmatch est uniquement de décider si l'algorithme correspondant à l'itinéraire doit continuer à rechercher avec un chemin vide sur les itinéraires enfants lorsque '' déjà apparié sur la route des parents. C'est un cas particulier car il est difficile de savoir si "rien" devrait être consommé lorsqu'il correspond ou non. Je ne connais pas d'autres cas d'utilisation pour pathmatch .



1
votes

Le problème est que vous dites: xxx

qui disant essentiellement:

Trouvez une URL qui commence avec rien ('') et tout simplement assez, tout simplement Les URL commencent toujours avec rien.

considérer cet URL / Google

ou cet URL Vous exécutez une regex et disent que ces URL correspondent à ''?, oui le do.

sauf si vous dites le démarrage (^) et terminer ($) < / Code> Le bit doit correspondre aussi, ce qui, dans ce cas, le démarrage correspondra pour les deux, mais la fin ne correspondra qu'à l'URL vide.

C'est ce qu'ils ont créé le complet < / Code> Préfixe, comme indiquer, l'URL devrait correspondre exactement.


0 commentaires

0
votes

Alors, quelqu'un me demandait comment j'ai résolu ce problème,

J'ai d'abord ajouté un nouvel itinéraire comme retombe à tous les autres itinéraires, quelque chose comme ceci: p>

<template [ngIf]="viewData && viewData['component'] == 'profile'">
  <user-profile
    [title] = "viewData['view']"
    [username] = "viewData['username']"
  ></user-profile>
</template>


0 commentaires