J'essaie de naviguer vers une autre page en cliquant sur un bouton, mais cela ne fonctionne pas. Quel pourrait être le problème. J'apprends maintenant angular 2 et c'est un peu difficile pour moi maintenant.
//Routes/Path in a folder call AdminBoard
export const AdminRoutes: Routes =[
{
path: 'dashboard',
component: AdminComponent,
children: [
{path: '', redirectTo: 'Home'},
{path: 'Home', component: HomeComponent},
{path: 'Service', component: ServiceComponent},
{path: 'Service/Sign_in', component:CustomerComponent}
]
}
];
//Button is also in a different folder. Click button to navigate to this page {path: 'Service/Sign_in', component:CustomerComponent}
<button class="btn btn-success pull-right" ><a routerLink="/Service/Sign_in"> Add Customer</a></button>
Utilisez-le comme ceci, devrait fonctionner:
<a routerLink="/Service/Sign_in"><button class="btn btn-success pull-right" > Add Customer</button></a>
Vous pouvez aussi utiliser router.navigateByUrl('..')
comme ceci:
<button type="button" class="btn btn-primary-outline pull-right" (click)="btnClick();"><i class="fa fa-plus"></i> Add</button>
import { Router } from '@angular/router';
btnClick= function () {
this.router.navigateByUrl('/user');
};
Vous devez injecter Router
dans le constructeur comme ceci:
constructor(private router: Router) { }
alors seulement, vous pourrez utiliser this.router
.
Maintenant, après Angular v4, vous pouvez directement ajouter l'attribut routerLink
sur le bouton (comme indiqué par @mark dans la section commentaire) comme ci-dessous -
<button routerLink="/url"> Button Label</button>
Vous pouvez utiliser routerLink de la manière suivante,
<input type="button" value="Add Bulk Enquiry" [routerLink]="['../addBulkEnquiry']" class="btn">
ou utilisez <button [routerLink]="['./url']">
dans votre cas, pour plus d’informations, vous pouvez lire l’ensemble de la pile sur github https://github.com/angular/angular/issues/9471
les autres méthodes sont également correctes mais créent une dépendance sur le fichier de composant.
J'espère que votre problème est résolu.
<button type="button" class="btn btn-primary-outline pull-right" (click)="btnClick();"><i class="fa fa-plus"></i> Add</button>
import { Router } from '@angular/router';
btnClick= function () {
this.router.navigate(['/user']);
};
Il est important de décorer le lien du routeur et de le relier entre crochets de la manière suivante:
<a [routerLink]="['/service']"> <button class="btn btn-info"> link to other page </button></a>
Où "/ service" dans ce cas est l'URL du chemin spécifié dans le composant de routage.
vous pouvez changer
this.router.routeReuseStrategy.shouldReuseRoute = () => false;
au niveau des composants dans le constructeur comme ci-dessous
constructor(private router: Router) {
this.router.routeReuseStrategy.shouldReuseRoute = () => false;
}