web-dev-qa-db-fra.com

uRL absolue du routeur

De documents angulaires :

La directive de liaison au routeur traite toujours l’entrée fournie comme un delta à l'URL actuelle.

Par exemple, si l'URL actuelle est /user/(box//aux:team). Puis le Le lien suivant <a [routerLink]="['/user/jim']">Jim</a> va générer le lien /user/(jim//aux:team).

Alors, comment créez-vous un lien vers /user/jim?

J'ai essayé ['/user/jim', { outlets: { aux: null }}] mais cela ne fonctionne pas.
Même si cela avait fonctionné, la solution n'aurait pas été optimale. Je cherche plutôt un moyen de naviguer vers une URL absolue que d'annuler possibles points de vente.

MODIFIER:

Sur le même sujet, j'ai un lien vers la racine: routerLink="/" qui fait justement cela, il redirige vers la racine de mon application sans aucun point de vente comme un lien absolu. Ce qui est drôle ici, c’est que je ne souhaite pas spécialement ce comportement pour ce lien particulier, conserver les itinéraires des points de vente était correct ... 

10
Ghetolay

Vous pouvez utiliser des chemins relatifs:

<a [routerLink]="['./']"

Va rediriger vers votre parent supérieur (/user/jim)

<a [routerLink]="['']"
<a [routerLink]="['/']"

Va rediriger vers '/'

7
zurfyx

En août 2018, les documents de Angular disent:

  • Si le premier segment commence par /, le routeur recherchera l'itinéraire à la racine de l'application. 
  • Si le premier segment commence par ./, ou ne commence pas par une barre oblique, le routeur examinera les enfants du fichier. itinéraire activé. 
  • Et si le premier segment commence par ../, le routeur montera d’un niveau.
4
vulp

Une solution à votre problème pourrait être de mettre un événement click sur votre élément html, vous pouvez ensuite passer votre URL dans le gestionnaire d'événements et le réacheminer n'importe où en utilisant 'Router' importé de '@ angular/router':

<a (click)="reRoute(urlToRoute)"></a>

puis dans le fichier .ts du composant:

     import { Router} from '@angular/router';
..
    constructor(private router: Router,
        ) { }
..

    reroute(url) {
 this.router.navigate([url])
}

J'espère que ceci résoudra votre problème!