在每个模块上导入NgModule和FormModule?

时间:2016-08-23 09:39:44

标签: forms angular module

所以我正在使用RC5,现在看起来相当不错,我遇到了一个问题,我不确定我做错了什么或是按照预期工作;

之前可以在全球范围内制作表格指令等。如今我们开始使用NgModule。虽然我不能在AppModule和SharedModule中全局使用FormsModule和ReactiveFormsModule。我需要在我创建的每个模块中导入它。

这是否符合预期?

4 个答案:

答案 0 :(得分:4)

根据this NgModule doc,它符合预期,

  • 因此,如果您在应用中使用多个NgModule层次结构,则需要在全局范围内创建 SharedModule 导入/导出其中Modules/Components/Directives/Pipes

  • 然后在要与之共享的每个模块中导入此模块。

您可以阅读the docs以获得更多说明。

答案 1 :(得分:1)

您应该将FormsModuleReactiveFormsModule添加到SharedModule导出中,然后您需要将SharedModule导入其他模块。这样,您就可以全局使用所需的指令。

答案 2 :(得分:0)

我在我的app.module.ts中全局使用FormsModule和ReactiveFormsModule:

 imports: [ // module dependencies
         BrowserModule, routing,
         FormsModule, ReactiveFormsModule, HttpModule,...
     ]

答案 3 :(得分:0)

您可以使用所需的指令导出类,例如:

  1. 创建文件 ngforms.module.ts (可以在根应用程序上)
  2. 写下:
import { NgModule }                         from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

@NgModule({
  imports:[
    FormsModule,
    ReactiveFormsModule,
  ],
  exports:[
    FormsModule,
    ReactiveFormsModule,
  ]
})
export class NgFormModule {}
  1. 您必须在应用的每个模块或子模块中导入并调用
import { NgFormModule } from './ngform.module';
imports: [
    //Angular material
    BrowserAnimationsModule,
    //Angular (forms)
    NgFormModule
  ],