【问题标题】:RouterModule: Router InstanceRouterModule:路由器实例
【发布时间】:2019-01-25 00:33:34
【问题描述】:

我希望在我的子模块中访问 RouterModule 指令(routerLink),但我没有任何路由可以添加到 forChild 方法中。 我应该以哪种方式在我的@NgModule 类中导入RouterModule而不获取另一个Router实例(已经通过RouterModule.forRoot(ROUTES)在根应用程序模块中实例化):

@NgModule({
   imports: [RouterModule.forChild([])]
})

@NgModule({
  imports: [RouterModule]
})

两者似乎都适用于我的应用程序。我只是不确定服务实例是否发生了两次。

我已经阅读了文档的这两个条目:

结果是根应用模块导入RouterModule.forRoot(...)并得到一个Router,而所有路由组件都导入RouterModule,但不包含Router.[1]

还有:

对于子模块和延迟加载的子模块,模块应该使用如下[2]:

  @NgModule({
    imports: [RouterModule.forChild(ROUTES)]
  })
  class MyNgModule {}

【问题讨论】:

    标签: angular angular2-routing


    【解决方案1】:

    如果不导入 RouterModule,您就不能拥有 routerLink 指令。您只需将其导入您的子模块,而无需调用 RouterModule.forChild() 方法。

    为了更好地理解forRoot()forChild(),请参考以下链接:

    RouterModule.forRoot(ROUTES) vs RouterModule.forChild(ROUTES)

    Avoiding common confusions with modules in Angular

    【讨论】:

      猜你喜欢
      • 2016-07-15
      • 1970-01-01
      • 2019-03-26
      • 2012-12-19
      • 2014-07-01
      • 2020-12-29
      • 1970-01-01
      • 2016-03-09
      • 2016-05-24
      相关资源
      最近更新 更多