2

我的组件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 作为声明(带导出)并且它有效。我将它移到另一个模块中,然后导入和导出该模块,但它不起作用。

我错过了什么?

4

1 回答 1

1

我之前遇到过类似的错误,发生在我身上的是我错过import { CommonModule } from '@angular/core'了我的*.module.ts文件,对于你的FilterModule,请试试这个:

import { CommonModule } from '@angular/core';
@NgModule({
    imports: [CommonModule],
    declarations: [MemberCountryFilter],
    exports: [MemberCountryFilter],
    providers: []
})
export class FilterModule { }
于 2016-11-10T21:22:31.587 回答