【发布时间】:2018-01-29 00:28:12
【问题描述】:
我使用 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 };
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 运行网站时它们似乎无能为力,它们也必须在服务器文件中复制。
【问题讨论】: