共享组件导入延迟加载模块后无法正常工作

时间:2018-11-14 21:03:48

标签: angular lazy-loading angular-module

我正在尝试在我的延迟加载模块中加载一个共享组件。 模块。我的惰性模块会像这样导入SharedModule

// LazyModule

@NgModule({
    imports: [
      CommonModule,
      SharedModule,
      RouterModule.forChild(routes)
    ],
    declarations: [
      LazyParentComponent
    ]
})

在我的SharedModule中,我导入了我要作为共享组件导出的MenuComponent所需的Angular材质组件:

// SharedModule

@NgModule({
  imports: [CommonModule],
  declarations: [MenuComponent],
  exports: [
    MatButtonModule,
    MatSelectModule,
    MatInputModule,
    MatOptionModule,
    MatToolbarModule,
    MenuComponent
  ]
})

然后在我的LazyParentComponent中使用<app-menu></app-menu>,它应该呈现MenuComponent,它包含在sharedModule中。

但是,如果我开始这样做,我总是会遇到很多错误,例如Can't bind to 'value' since it isn't a known property of 'mat-select'.'mat-toolbar' is not a known element.

但是,如果我不使用<app-menu></app-menu>,而是直接使用MatButtonModule中的MatButton,它就可以工作。

1 个答案:

答案 0 :(得分:1)

您还需要在导入中包括所有物料模块:

共享模块

@NgModule({
  imports: [CommonModule,
    MatButtonModule,
    MatSelectModule,
    MatInputModule,
    MatOptionModule,
    MatToolbarModule
],
  declarations: [MenuComponent],
  exports: [
    MatButtonModule,
    MatSelectModule,
    MatInputModule,
    MatOptionModule,
    MatToolbarModule,
    MenuComponent
  ]
})