Angular 2 + Lazyloaded Module正在被导入的模块覆盖

时间:2017-04-26 15:31:18

标签: angular angular2-modules

我想知道如何在没有优先于父模块的情况下导入模块。我试图理解为什么导入的模块覆盖父模块入口组件。我将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路线和NgModule:

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

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

})

2 个答案:

答案 0 :(得分:2)

我会发布答案(根据上述评论)......

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

很高兴能帮到你。追踪路由器问题可能是一个负担。

答案 1 :(得分:0)

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