我的組件,ListingComponent,使用稱爲MemberCountryFilter組件。我有這個模塊,一切正常。Angular2 - 我的模塊如何導入和使用另一個模塊?
@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 =」讓selectedMemberCountries的SMC「>
看來ListingComponent不知道MemberCountryFilter是什麼。顯然,有件事我不理解的模塊。我已經閱讀文檔,我想我做正確。
在FilterModule出口應MemberCountryFilter可用。然後,我將其導入ListingSharedModule,然後導出它應該將其提供給ListingComponent。
對於基本概況,我MemberCountryFilter爲一個聲明(帶出口)並且工作,我把它移到另一個模塊中,然後導入和e xport該模塊,但它不起作用。
我錯過了什麼?
NgFor指令屬於CommonModule是從BrowserModule進口的,也許你應該在API參考https://angular.io/docs/ts/latest/api/common/index/CommonModule-class.html – Alcruz
CommonModule BrowserModule我有CommonModule作爲進口。爲了簡潔,我將它們排除在外。我會更新帖子。基本上,它正在工作,然後我刪除了MemberCountryFilter並將其替換爲該FilterModule並停止工作。我不想讓很多無關項目混亂。 – Alcruz
導入上ListingSharedModule –