2016-08-20 88 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