RouterLink ne fonctionne pas

mon routage dans les applications angular2 fonctionne bien. Mais je vais faire quelques routeLink basé sur ce :

Voici mon itinéraire:

const routes: RouterConfig = [
    { path:'home' , component: FormComponent  },
    { path:'about', component: AboutComponent },
    { path:'**'   , component: FormComponent  }
];

et voici les liens que j'ai fait:

<ul class="nav navbar-nav item">
                    <li>
                        <a routerLink='/home' routerLinkActive="active">Home</a>
                    </li>
                    <li>
                        <a routerLink='/about' routerLinkActive="active">About this</a>
                    </li>
</ul>

Je m'attends à ce que, quand je clique sur eux, il navigue vers le composant respecté, mais ils n'accomplissent rien?

42
demandé sur Kamyar Parastesh 2016-08-08 18:14:13

5 réponses

le code que vous montrez est absolument correct.

je soupçonne que votre problème est que vous n'importez pas RouterModule (qui est où RouterLink est déclaré) dans le module qui utilise ce modèle.

j'ai eu un problème similaire et il m'a fallu un certain temps pour le résoudre car cette étape n'est pas mentionnée dans la documentation.

alors allez au module qui déclare le composant avec ce modèle et ajoutez:

import { RouterModule } from '@angular/router';

puis l'ajouter à vos importations de modules par exemple

@NgModule({
  imports: [
    CommonModule,
    RouterModule
  ],
  declarations: [MyTemplatesComponent]
})
export class MyTemplatesModule { }

en plus d'avoir les bons rapports d'importation, vous aurez aussi besoin d'un endroit pour que le routerLink soit affiché, qui est dans l'élément <router-outlet></router-outlet> , de sorte que cela doit aussi être placé quelque part dans votre marqueur HTML pour que le routeur sache où afficher ces données.

135
répondu Sam Redway 2018-03-07 20:29:36

n'oubliez pas d'ajouter ceci ci-dessous dans votre modèle:

<router-outlet></router-outlet>
9
répondu zai 2017-05-11 17:22:51

essayez de changer les liens comme ci-dessous:

  <ul class="nav navbar-nav item">
    <li>
        <a [routerLink]="['/home']" routerLinkActive="active">Home</a>
    </li>
    <li>
        <a [routerLink]="['/about']" routerLinkActive="active">About this</a>
    </li>
  </ul>

ajouter aussi ce qui suit dans l'en-tête de index.html:

<base href="/">

5
répondu raj_just123 2017-04-19 20:13:39

utilisez-le comme ceci pour mroe info lire ce thème

<a [routerLink]="['/about']">About this</a>
2
répondu rashfmnb 2016-08-08 15:15:34

les liens sont erronés, vous devez faire ceci:

<ul class="nav navbar-nav item">
    <li>
        <a [routerLink]="['/home']" routerLinkActive="active">Home</a>
    </li>
    <li>
        <a [routerLink]="['/about']" routerLinkActive="active">About this
        </a>
    </li>
</ul>

vous pouvez lire ce tutoriel

0
répondu Fernando Del Olmo 2016-08-08 22:17:11