2016-09-09 92 views
2

我有DashboardModule導入我的根AppModule。在DashboardModule的組件模板中,我使用了*ngFor。它在BrowserModule(正好在CommonModuleBrowserModule進口)中聲明。Angular2 RC6 - 在我的子模塊中導入BrowserModule

我想申報一次在我的應用程序中的根模塊導入BrowserModule。但有些不起作用,我必須在DashboardModule中輸入。當我註釋掉導入時,在控制檯Can't bind to 'ngForOf' since it isn't a known property of ...中出現錯誤。

下面是目前正在工作的運動員:http://plnkr.co/edit/73SYTnsMJxoVl5OSvWiF?p=preview(由於控制檯使用情況,Chrome中的最佳視圖)。

編輯文件src/dashboard/dashboard.module.ts - 註釋行18(導入BrowserModule)並且錯誤在控制檯中可見。

+1

您不應該在子模塊中導入BrowserModule。相反,你應該導入'CommonModule'。 'CommonModule'貢獻了諸如'ngIf'或'ngFor'等通用指令。 'BrowserModule'導入'CommonModule',然後重新導出它,這就是你能夠在你的根模塊中使用'ngFor'的原因。 –

回答

2

您應該在子模塊中而不是導入BrowserModule

在根模塊中導入BrowserModule,在子模塊中導入CommonModule

Plunker example

又見https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#q-browser-vs-common-module

不要任何其他模塊中導入BrowserModule。相反,功能模塊和延遲加載的模塊應該導入CommonModule。他們需要共同的指示。他們不需要重新安裝應用程序範圍的提供者。

+1

絕對正確...... – micronyks

1

根據NgModules的文檔,它說導入根模塊中的BrowserModule和特徵模塊中的CommonModule。