2016-08-20 85 views
1

我正在开发我的第一个应用使用角2,我遇到了奇怪的问题。角2重定向到与路由器不工作

我有我的路由配置是这样的:

export const routes: RouterConfig = [ 
{ path: '', redirectTo: 'login' }, 
{ path: 'login', component: Login }, 
{ path: 'home', component: Home } 
]; 

,当我输入localhost:3000,我自动重定向到我的本地主机:3000 /登录,这是我的登录表单页面。当我输入我的凭证并单击提交时,路由器naviagation不起作用(控制台中没有错误),但令人惊讶的是,当我刷新localhost:3000/login时,路由器正常工作。

我把路由器这样:

export class Login { 
    constructor(public router: Router, public http: Http) { 
    } 

login(event, username, password) { 
    event.preventDefault(); 
    // ... 
    this.router.navigate(['/home']); 
} 

}

可能是什么不对的路线配置?

回答

9

你必须忽略前导斜杠:

this.router.navigate(['home']); 

你也可能需要设置您的重定向路径上pathMatch: 'full'财产。

{ path: '', redirectTo: 'login', pathMatch: 'full' } 

否则当有更深层次的其他路线可用时,您的路线不会触发。

+0

不幸的是它不起作用 – Andayz

+0

请检查我的编辑。 – j2L4e

+0

删除斜杠后,刷新后停止工作 – Andayz