【问题标题】:Angular 2 + Lazyloaded Module is being overridden by an imported moduleAngular 2 + Lazyloaded Module 被导入的模块覆盖
【发布时间】:2017-04-26 15:31:17
【问题描述】:

我想知道如何在不优先于父模块的情况下导入模块。我试图了解为什么我的导入模块会覆盖父模块条目组件。我将QuotesModule 导入我的CompaniesModule,以便我的CompaniesModule 可以使用它的组件。当QuotesModule 被导入时,如下所示:

CompaniesModule (lazyloaded)

const ROUTES: Routes = [
    {path: '', component: CompaniesComponent}
];

@NgModule({
    declarations: [
        CreateCompanyComponent,
        CompaniesComponent
    ],
    providers: [
    ],
    imports: [
        QuotesModule,
        FormsModule,
        ReactiveFormsModule,
        GlobalModule,
        CommonModule,
        RouterModule.forChild(ROUTES)
    ],
    exports: [
    ],
    schemas: [
        CUSTOM_ELEMENTS_SCHEMA
    ],
    entryComponents: [
        CompaniesComponent
    ]

})

...我尝试导航到CompaniesComponent 路由,QuotesModule 条目组件改为解析。任何见解将不胜感激!

这是我的QuotesModule Routes 和 NgModule:

const ROUTES: Routes = [
    {path: '', component: QuotesComponent}
];

@NgModule({
    declarations: [
        QuotesComponent
    ],
    providers: [
    ],
    imports: [
        CommonModule,
        GlobalModule,
        RouterModule.forChild(ROUTES)
    ],
    exports: [
    ]

})

【问题讨论】:

  • 我可能是错的,但这听起来像是路由器问题。如果组件以其他方式正确导入(惰性或其他方式),一切都应该很好。
  • 你是对的!我注意到导入模块共享相同的路由器路径。更改它们可以解决问题。我将编辑问题以放入其他模块和路线。

标签: angular angular2-modules


【解决方案1】:

然后我将作为答案发布(基于上述 cmets)...

...问题听起来像您的路由器,而不是延迟加载的模块(取决于这些模块是否实际上正确加载)。检查子路由与主路由是否相互覆盖。

很高兴能帮上忙。追踪路由器问题可能会很麻烦。

【讨论】:

    【解决方案2】:

    问题在于路由。我使用了不同的路径来延迟加载我的QuotesModule,独立于CompanyModule,并且在导入时,QuotesModule 的路由匹配然后覆盖了导入模块的路由。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      相关资源
      最近更新 更多