- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个组件 ListComponent
需要在 2 个模块中使用,其中一个是延迟加载的。所以我创建了声明 ListComponent 的 SharedModule。 ListComponent 使用 routerLink
指令,因此它需要 RouterModule。所以我导入了 RouterModule,导致了这个错误。
core.js:1598 ERROR Error: Uncaught (in promise): Error: RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.
全局搜索显示我只调用了一次 RouterModule.forRoot
。我的延迟加载模块调用 RouterModule.forChild
并且是唯一的其他路由模块。
我使用完全相同的设置创建了一个 stackblitz,但无法重现该问题。它确实有效。尽管如此,我还是无法弄清楚我的项目有什么不同。 https://stackblitz.com/edit/angular-shared-component-b
最佳答案
如果您只需要在 SharedModule
中导入 RouterModule
以便使用诸如 routerLink
之类的指令,您可以像这样简单地导入它:
// ...
@NgModule({
imports: [RouterModule], // <-- without the .forRoot call
})
export class SharedModule { }
// ...
确保在你的应用程序的基础模块中(通常是 AppModule
,或者在你的情况下可能是 AppRoutingModule
)你使用 RouterModule.forRoot(yourRoutes) 导入它
因此 ListComponent
中使用的链接可以正常工作。
查看更多信息 RouterModule API Docs
关于angular - 错误 : RouterModule. forRoot() 调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50953337/
这两者之间有什么区别,各自的用例是什么? docs不是很有帮助: forRoot creates a module that contains all the directives, the give
在此stackblitz demo auth.routing.ts 模块导入 RouterModule 并使用它来配置 LoginComponent 的路由。然后它还再次导出 RouterModule
我的应用在生产环境中运行时遇到了问题。 我的应用使用来自@auth0/angular-jwt 的angular-jwt 如果用户拥有有效 token ,他将被转发到 MainScreenCompone
我正在尝试在我的 Angular 5 应用程序中实现延迟加载,但出现错误: 未捕获( promise ):错误:RouterModule.forRoot() 调用了两次。延迟加载的模块应该改用 Rou
我正在尝试在我的应用程序中实现延迟加载,但似乎遇到了一个问题,我收到了错误消息: Error: RouterModule.forRoot() called twice. Lazy loaded mod
我在学习Angular 2的 app-routing来自官方文档。我正在经历以下一段代码。 import { NgModule } from '@angular/core';
我有一个组件 ListComponent 需要在 2 个模块中使用,其中一个是延迟加载的。所以我创建了声明 ListComponent 的 SharedModule。 ListComponent 使用
我有一个组件 ListComponent 需要在 2 个模块中使用,其中一个是延迟加载的。所以我创建了声明 ListComponent 的 SharedModule。 ListComponent 使用
我正在学习 Angular2 教程:Tour of Heroes 我所有的教程旅程都如预期的那样,但是到了以下几点: https://angular.io/docs/ts/latest/tutoria
谁能告诉我component、loadChildren、redirectTo之间的区别? export const ROUTES: Routes = [{ path: '', redirectT
我是 Angular 的新手,目前从事路由方面的工作。我在组件中使用子路由时遇到问题。 routerLink 不会在组件中呈现为链接。如果我使用路由器 socket ,应用程序会崩溃。 使用路由器 s
我正在尝试使用创建一个包 Angular library starter 一切正常,直到我添加 RouterModule。 导致问题的模块 import { NgModule, ModuleWithP
scrollPositionRestoration :'top' 不适用于 RouterModule.forchild()? angular 7 中是否有任何解决方案可以确保页面在导航后始终滚动到顶部
请解释useHash: true角度2路线方法中的方法。 我的问题: 我们使用它的目的是什么。 为什么值是“真”为什么不是“假”? 如果值为假,会发生什么? RouterModule.forRoot(
在具有“useHash:true”路由器模块配置的Angular 7单页应用程序中,我需要生成要在新选项卡中打开的资源的url。 对于应用程序窗口中的路由,以下代码按预期工作: this.router
我正在我的 Angular 6 应用程序中实现延迟加载的功能模块,并已成功配置一个“发票”功能,但在为延迟加载的“费用”和“联系人”实现路由时遇到问题功能模块,其设置方式与第一个模块相同。 每个模块都
为什么 Angular RouterModule 使用 forRoot() 和 forChild()? 我已经阅读了有关 forRoot 模式以及如何保护提供者单例免受多重导入 (https://an
我几乎在每个组件模块上都有这两个导入: import { CommonModule } from '@angular/common'; import { RouterModule } from '@a
(前言:我来自 C#/WPF 背景,总体上是 Web 开发的新手 - 请多多包涵!) 使用 Angular 2,我可以这样定义我的路线: RouterModule.forChild([
假设我有以下 appRoutingModule: export const routes: Route[] = [ { path: '', component: Applicati
我是一名优秀的程序员,十分优秀!