Angular2 路由错误地重新加载主页
Angular2 route incorrectly reloads home page
获得了一个包含 2 个页面(主页和项目)的简单演示站点。当我通过菜单栏从主页单击到项目页面时,一切正常。但是当我从 link 上的主页单击 link 到项目页面时,项目页面会显示一秒钟,然后重新加载主页。任何人都知道什么可能是错的?如果我用一个按钮替换锚点,它也可以正常工作!所以我猜 href=""
有问题
路线:
const routes: Routes =[
{ path: 'home', component: HomeComponent },
{ path: 'project', component: ProjectsComponent },
{ path: '', redirectTo: 'home', pathMatch: 'full' }
];
@NgModule({
imports: [
...,
RouterModule.forRoot(routes, { useHash: true })
],
exports: [
],
})
导航栏(工作正常):
<a [routerLink]="['/project']" class="nav-link">Project</a>
html(主页-恰好是一个组件):
<a href="" (click)="showProject()">project</a>
(组件的)打字稿:
import { Router } from '@angular/router';
constructor(private router: Router) {
...
}
public showProject() {
this.router.navigate(['/project']);
}
最重要的是,您需要删除 html 页面上的 href
属性:
HTML主播:
<a href="" (click)="showProject()">project</a>
必须在没有 href
属性的情况下使用。
<a (click)="showProject()">project</a>
否则,页面将完全重新加载。然后,一些关于路由配置的建议。将路线 constant
更改为:
const routes: Routes =[
{ path: 'home', component: HomeComponent },
{ path: 'project', component: ProjectsComponent },
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: '**', redirectTo: '' }
];
在组件中只需将 showProject
方法修改为:
public showProject() {
this.router.navigate(['project']);
}
尝试空 [routerLink]
<a [routerLink]="" (click)="showProject()">project</a>
似乎有用的东西正在替换锚点的 href:
<a href="javascript:void(0)" (click)="showProject()">
获得了一个包含 2 个页面(主页和项目)的简单演示站点。当我通过菜单栏从主页单击到项目页面时,一切正常。但是当我从 link 上的主页单击 link 到项目页面时,项目页面会显示一秒钟,然后重新加载主页。任何人都知道什么可能是错的?如果我用一个按钮替换锚点,它也可以正常工作!所以我猜 href=""
有问题路线:
const routes: Routes =[
{ path: 'home', component: HomeComponent },
{ path: 'project', component: ProjectsComponent },
{ path: '', redirectTo: 'home', pathMatch: 'full' }
];
@NgModule({
imports: [
...,
RouterModule.forRoot(routes, { useHash: true })
],
exports: [
],
})
导航栏(工作正常):
<a [routerLink]="['/project']" class="nav-link">Project</a>
html(主页-恰好是一个组件):
<a href="" (click)="showProject()">project</a>
(组件的)打字稿:
import { Router } from '@angular/router';
constructor(private router: Router) {
...
}
public showProject() {
this.router.navigate(['/project']);
}
最重要的是,您需要删除 html 页面上的 href
属性:
HTML主播:
<a href="" (click)="showProject()">project</a>
必须在没有 href
属性的情况下使用。
<a (click)="showProject()">project</a>
否则,页面将完全重新加载。然后,一些关于路由配置的建议。将路线 constant
更改为:
const routes: Routes =[
{ path: 'home', component: HomeComponent },
{ path: 'project', component: ProjectsComponent },
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: '**', redirectTo: '' }
];
在组件中只需将 showProject
方法修改为:
public showProject() {
this.router.navigate(['project']);
}
尝试空 [routerLink]
<a [routerLink]="" (click)="showProject()">project</a>
似乎有用的东西正在替换锚点的 href:
<a href="javascript:void(0)" (click)="showProject()">