2017-03-28 88 views
0

我試圖重新路由到不同的頁面登錄,但由於某種原因我的路由似乎並沒有工作。它一直告訴我,它在我的路由器中「無法匹配任何路由」。我清楚地知道那裏的路線,並且我嘗試了各種方法使它與路線相匹配。也許另一組眼睛可以看到我沒有看到的東西。Angular 2路由不能匹配任何路由

AppRouter.module:

import { NgModule } from '@angular/core'; 
import { RouterModule, Routes } from '@angular/router'; 

import { LoginComponent } from '../Components/login.component'; 
import { MenuComponent } from '../Components/menu.component'; 

const routes: Routes = [ 
{ path: '', redirectTo: '/login', pathMatch: 'full' }, 
{ path: 'login', component: LoginComponent }, 
{ path: 'menu', component: MenuComponent } 
]; 

@NgModule({ 
    imports: [ RouterModule.forRoot(routes) ], 
    exports: [ RouterModule ] 
}) 
export class AppRouter {} 

login.component.module:

import { Component } from '@angular/core'; 
import { Router } from '@angular/router'; 

@Component({ 
    templateUrl: '../Templates/login.component.html' 
}) 
export class LoginComponent { 
    title = 'app works!'; 
    username: string = 'user'; 
    password: string = 'password' 

    constructor(private router: Router){ 

    } 

    validate(): void{ 
    if(this.username === "user" && 
     this.password === "password"){ 
     console.log("Logged In!"); 
     this.router.navigate(['../main']); 
    } 
    else { 
      console.log(this.username + ' ' + this.password); 
    } 
    } 
} 

它導入到我的模塊就好了,該menu.component是超級基本的,有沒有錯別字。如果我在標籤內添加一個「路線鏈接」,它將打開,但沒有其他方式。任何想法都會很棒,謝謝。

+0

你的'主要'路線在哪裏列出? 「路線」中我沒有看到它。 –

回答

0

我認爲你拼寫錯誤的折騰..

這是你的路線配置:

{ path: 'menu', component: MenuComponent } 

這是您的組件

this.router.navigate(['../main']); 

兩個不同的詞:菜單和主

第二種情況下的另一個問題可能是兩個點。你應該使用一個,因爲它是相同的水平(兩個點它的'去'一個級別以上')

+0

我現在非常生氣!!!大聲笑。謝謝你,我是這裏唯一的開發者,我知道它會是一件小事。 –

0

更改this.router.navigate(['../main']);this.router.navigate(['./menu']);。您不希望路由器升級,因爲這兩個組件分別在[host]/login[host]/menu之間,這些組件處於同一級別。