我正在使用角度2开发我的第一个应用程序,我遇到了奇怪的问题。
我的路线配置如下:
export const routes: RouterConfig = [
{ path: '', redirectTo: 'login' },
{ path: 'login', component: Login },
{ path: 'home', component: Home }
];
当我输入localhost:3000时,我会自动重定向到我的localhost:3000 / login,这是我的登录表单页面。当我输入我的凭据并单击提交路由器时naviagation不起作用(控制台中没有错误),但令人惊讶的是当我刷新localhost:3000 / login时路由器工作。
我这样称呼路由器:
export class Login {
constructor(public router: Router, public http: Http) {
}
login(event, username, password) {
event.preventDefault();
// ...
this.router.navigate(['/home']);
}
}
此路线配置可能出现什么问题?
答案 0 :(得分:14)
您必须省略前导斜杠:
this.router.navigate(['home']);
此外,您可能需要在重定向路由上设置pathMatch: 'full'
属性。
{ path: '', redirectTo: 'login', pathMatch: 'full' }
否则当其他路线具有更深层次时,您的路线不会触发。