Angular:app-routing.module.ts 中路径的用途是什么

Sta*_*001 3 web typescript angular

我是 Angular 的新手,问自己当我的所有路径都在 app.module.ts 中处理时,app-routing.module.ts 中的路径的目的(以及该模块的一般用途)是什么?

这是我的 app-routing.module.ts:

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

const routes: Routes = [];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
Run Code Online (Sandbox Code Playgroud)

这是我的 app.module.ts:

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

import { AppComponent } from './app.component';
import {RouterModule} from '@angular/router';
import { TaskviewComponent } from './taskview/taskview.component';
import { AppRoutingModule } from './app-routing.module';
import { AddTaskComponent } from './add-task/add-task.component';
import {ReactiveFormsModule} from '@angular/forms';

@NgModule({
  declarations: [
    AppComponent,
    TaskviewComponent,
    AddTaskComponent
  ],
  imports: [
    RouterModule.forRoot([{
      path: 'view', component: TaskviewComponent},
      {path: 'add', component: AddTaskComponent
    }]),
    BrowserModule,
    AppRoutingModule,
    ReactiveFormsModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

fam*_*oha 8

您使用的 app-routing.module.ts 错误(您根本没有使用它)。

app-routing.module.ts 的目的是将路由外包到不同的文件中(纯粹出于可读性目的),然后将模块导入回 app.module.ts 文件中。

正确的使用方法是:

应用程序路由.module.ts

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

const routes: Routes = [
      {path: 'view', component: TaskviewComponent},
      {path: 'add', component: AddTaskComponent}
      ];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
Run Code Online (Sandbox Code Playgroud)

应用程序模块.ts

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

import { AppComponent } from './app.component';
import { TaskviewComponent } from './taskview/taskview.component';
import { AppRoutingModule } from './app-routing.module';
import { AddTaskComponent } from './add-task/add-task.component';
import {ReactiveFormsModule} from '@angular/forms';

@NgModule({
  declarations: [
    AppComponent,
    TaskviewComponent,
    AddTaskComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    ReactiveFormsModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)