我使用yeoman生成器爲前端創建了一個帶有Angular的.net spa應用程序。它使用三個app.module.ts文件(app.module.client.ts,app.module.shared.ts,app.module.server.ts)創建一個應用程序。不幸的是,位於客戶端應用程序模塊文件中的NgModule導入似乎沒有正確注入到組件中。因此,當我嘗試在輸入上使用ngFor時,我得到錯誤「無法綁定到'ngModel',因爲它不是'input'的已知屬性。」我認爲這是因爲即使我的app.module.client.ts文件如下所示,表單模塊並未被導入: 從'@ angular/core'導入{NgModule};在Angular(4)(客戶端,服務器,共享)中使用具有拆分應用程序模塊的導入
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { sharedConfig } from './app.module.shared';
import {SelectModule} from 'ng2-select';
@NgModule({
bootstrap: sharedConfig.bootstrap,
declarations: sharedConfig.declarations,
imports: [
BrowserModule,
FormsModule,
HttpModule,
SelectModule,
...sharedConfig.imports
],
providers: [
{ provide: 'ORIGIN_URL', useValue: location.origin }
]
})
export class AppModule {
}
也許我錯過了如何分開這些模塊的工作。鑑於這種不同的模塊架構,我該如何正確導入模塊?
更新:我能夠通過在app.module.server.ts中包含模塊導入來解決問題。我想留下這個問題,希望有人能解釋這是如何工作的。這尤其奇怪,因爲來自Yeoman的預建模板將app.module.client.ts文件中的所有模塊導入,並且在運行dotnet run
時它們似乎無能爲力,因此它們必須在服務器文件中重複。