Angular2:RouterModule的导出,为什么需要它?

Hit*_*mar 18 angular2-routing angular

我正在从官方文档中学习Angular 2应用程序路由.我正在通过以下代码.

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

export const routes: Routes = [
  { path: '', redirectTo: 'contact', pathMatch: 'full'},
  { path: 'crisis', loadChildren: 'app/crisis/crisis.module#CrisisModule' },
  { path: 'heroes', loadChildren: 'app/hero/hero.module#HeroModule' }
];

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

它创建AppRoutingModule并定义routes它.我无法理解的部分是为什么我们需要再次导出RouterModule?我相信它是核心角度模块之一,可以通过导入随处可用@angular/router.

Gün*_*uer 19

您不需要导出它.这只是为了方便.如果你添加AppRoutingModuleAppModule你也隐式导入RouterModule这种方式.否则你需要明确地导入它

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

例如,能够使用<router-outlet>RouterLink在声明的组件中AppModule

  • 这在网络上太混乱了!你是第一个提到它的人!谢谢你 (2认同)