angular - RouterModule:路由器实例
问题描述
我希望在我的子模块中访问 RouterModule 指令(routerLink),但我没有任何路由可以添加到 forChild 方法中。我应该以哪种方式在我的@NgModule 类中导入RouterModule 而不获取Router 的另一个实例(已经通过RouterModule.forRoot(ROUTES)在根应用程序模块中实例化):
@NgModule({
imports: [RouterModule.forChild([])]
})
或者
@NgModule({
imports: [RouterModule]
})
两者似乎都适用于我的应用程序。我只是不确定服务实例是否发生了两次。
我已经阅读了文档的这两个条目:
结果是根应用程序模块导入 RouterModule.forRoot(...) 并获得一个路由器,而所有路由组件都导入不包括路由器的 RouterModule。[1]
和:
对于子模块和延迟加载的子模块,该模块应按如下方式使用[2]:
@NgModule({
imports: [RouterModule.forChild(ROUTES)]
})
class MyNgModule {}
解决方案
不导入RouterModule就不能拥有routerLink指令。您只需将其导入子模块而不调用RouterModule.forChild()方法。
为了更好地理解forRoot()和forChild(),请参考以下链接:
RouterModule.forRoot(ROUTES) 与 RouterModule.forChild(ROUTES)
推荐阅读
- javascript - 将 html 导出为具有多个页面的 pdf
- javascript - 需要帮助引用元素
- javascript - window.deviceorientation 在 Safari 浏览器中不起作用
- sonarqube - 在 SonarQube 中的项目上自动设置 Checkmarx 配置
- jenkins - 添加 Jenkins 系统属性无法在重启后继续存在
- ios - 目标 c:将活动添加到谷歌日历
- c - 如何将整数转换为 uint8_t 指针?
- c - 如何对矩阵进行填充
- java - 动态地将值传递给泛型方法
- c - 使用 struct 作为“数据库”的任意数量单词(字母顺序)的排序算法