鍍金池/ 問答/HTML5  HTML/ 請教angular路由提示 Cannot match any routes.

請教angular路由提示 Cannot match any routes. URL Segment: 'login'問題

我用angular-cli(1.1.3)new出了一個project,然后進行路由配置
1、目錄結(jié)構(gòu)是

clipboard.png

2、在login相關(guān)子路由配置
login-routing.module.ts中

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { LoginComponent } from './login/login.component';

const routes: Routes = [
  {
    path: 'login',
    component: LoginComponent,
  }
];

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

login.module.ts中

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

3.在app文件中的配置
app-routing.module.ts中

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from './app.component';

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

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

在app.module.ts中

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { MdSidenavModule } from '@angular/material';

import { AppComponent } from './app.component';
import { CoreModule } from './core/core.module';
import { AppRoutingModule } from './app-routing.module';


@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    MdSidenavModule,
    CoreModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

我已經(jīng)引入相關(guān)子路由,子路由和組件頁面已經(jīng)對應(yīng),為什么還會報這個錯誤呢?剛?cè)隺ngular4請教一下各位了

在app.component.html中

<md-sidenav-container>
  <md-sidenav #sidenav mode="side"> 
    <!-- mode有三種over[默認(rèn)](側(cè)欄在main上面)side(側(cè)欄會吧main擠過去)push(既在main之上又會擠過去main) -->
    <app-sidebar></app-sidebar>
  </md-sidenav>
  <div class="site">
    <header>
      <app-header (toggle)="sidenav.toggle()"></app-header>
    </header>
    <main>
      <router-outlet></router-outlet>
      
    </main>
    <footer>
      <app-footer></app-footer>
    </footer>
  </div>
</md-sidenav-container>

但是用Chrome的Augury調(diào)試時,組件樹中沒有這個login組件

clipboard.png

回答
編輯回答
怪痞

/login
路徑里不能以 / 開始吧。

2017年11月1日 13:23
編輯回答
耍太極

login-routing.module.ts中:

const routes: Routes = [
  {
    path: '',
    component: LoginComponent,
  }
];

app-routing.module.ts

const routes: Routes = [
  {
    path: '',
    redirectTo: '/login',
    pathMatch: 'full'
  },
  {
    path:'login',
    loadChildren:'./login/login.module#LoginModule'
  }
];
2018年8月31日 22:16
編輯回答
法克魷

大佬,源碼能給份我么。。。我這為啥是編譯后的

2017年10月26日 06:09
編輯回答
我不懂

我忘記在app.module.ts中imports引入了loginModule。
謝謝大家的解答

2018年4月2日 20:37