我的组件ListingComponent 使用了一个名为MemberCountryFilter 的组件。我有这个模块,一切正常。
@NgModule({
imports: [CommonModule, RouterModule, FormsModule, ReactiveFormsModule],
declarations: [ListingComponent, MemberCountryFilter],
exports: [ListingComponent,MemberCountryFilter,],
providers: []
})
export class ListingComponent { }
我意识到另一个模块很快就会需要 MemberCountryFilter 组件,所以我进行了重构。我为 MemberCountryFilter 组件创建了这个模块,我想将它导入到其他模块中。
@NgModule({
imports: [],
declarations: [MemberCountryFilter],
exports: [MemberCountryFilter],
providers: []
})
export class FilterModule { }
我将原始模块更改为:
@NgModule({
imports: [CommonModule, RouterModule, FormsModule, ReactiveFormsModule, FilterModule],
declarations: [ListingComponent],
exports: [ListingComponent, FilterModule,],
providers: []
})
export class ListingComponent { }
这样做之后,我得到如下模糊的模板解析错误:
zone.js:355 未处理的承诺拒绝:模板解析错误:无法绑定到“ngForOf”,因为它不是“ul”的已知属性。("]*ngFor="let smc of selectedMemberCountries">
似乎ListingComponent 不知道MemberCountryFilter 是什么。显然,我对模块有些不了解。我已经阅读了文档,我认为我做得对。
FilterModule 中的导出应该使 MemberCountryFilter 可用。然后我将它导入到ListingSharedModule 中,然后将其导出以使其对ListingComponent 可用。
对于基本概述,我将 MemberCountryFilter 作为声明(带导出)并且它有效。我将它移到另一个模块中,然后导入和导出该模块,但它不起作用。
我错过了什么?