Angular 2 RC.5无法绑定到' formGroup'因为它不是“形式”的已知属性。

时间:2016-08-22 09:53:25

标签: forms angular typescript

我有错误

Can't bind to 'formGroup' since it isn't a known property of 'form'

更新项目到angular2 RC.5后

app.module.ts:

@NgModule({
declarations: [
    AppComponent
],
imports: [
    BrowserModule,
    DeprecatedFormsModule,
    HttpModule,
    TranslateModule.forRoot({
      provide: TranslateLoader,
      useFactory: (http: Http) => new TranslateStaticLoader(http, '/assets/i18n', '.json'),
      deps: [Http]
    }),
    ConfigurationDevicesModule,
    ConfigurationEditModule,
    ControlModule,
    ResourceEditModule,
    UniWebControlInfoModule,
    routing
],
bootstrap: [ AppComponent ]
})

export class AppModule {

}

myComponent.module.ts

@NgModule({
declarations: [
    ConfigurationDevicesComponent
],
imports: [
    BrowserModule,
    TranslateModule
],
exports: [
    ConfigurationDevicesComponent
]
})

export class ConfigurationDevicesModule {

}

模板html示例:

<form [formGroup]="selectBackground">
                        <div *ngIf="backgrounds" class="form-group">
                            <h5>{{ 'CONFIGURATION_DEVICES.ALL_BACKGROUNDS' | translate }}</h5>
                            <select formControlName="selectBackgroundId">
                                <option *ngFor="let background of backgrounds" [value]="background.id">{{ 'CONFIGURATION_DEVICES.ID' | translate }} {{ background.id }} {{ 'CONFIGURATION_DEVICES.NAME' | translate }} {{ background.name }}</option>    
                            </select>
                        </div>
                    </form>

在angular 2 RC4中,formGroup工作正常。

我尝试导入DeprecatedFormsModule和DFormsModule,问题是一样的。在官方文档Angular现在我找不到关于formGroup的任何提及或者再次改变了构建表单的方式?

2 个答案:

答案 0 :(得分:3)

<强>更新

select @@servername go 需要添加到ReactiveFormsModule

imports

<强>原始

使用 @NgModule({ imports: [BrowserModule, FormsModule, ReactiveFormsModule], // <<<=== ... }) 代替ReactiveFormsModule

为了能够DeprecatedFormsModulengModel一起使用,您需要导入formControlName FormsModule

答案 1 :(得分:2)

  1. 您需要将REACTIVE_FORM_DIRECTIVES@angular/forms导入您的组件并将其添加为指令(directives: [REACTIVE_FORM_DIRECTIVES]
  2. 您需要将FormsModule@angular/forms导入您的NgModule。