无法绑定到“ ngModelOptions”,因为它不是Angular 6中“ input”的已知属性

时间:2018-10-19 03:26:14

标签: angular angular6 antd ng-zorro-antd

这是我的HTML:

<nz-form-item nzFlex [formGroup]="hulkForm">
   <nz-form-label [nzSpan]="7" [nzFor]="hulkColumn.column" 
        [nzRequired]="hulkColumn.require">{{hulkColumn.lable}}</nz-form-label>
   <nz-form-control [nzSpan]="17">
   <input nz-input 
       placeholder={{hulkColumn.placeholder}} 
       [formControlName]="hulkColumn.name"
       [(ngModel)]="hulkColumn.model"
     [ngModelOptions]="{updateOn: 'blur'}"
     name="{{hulkColumn.name}}"
        *ngIf="hulkColumn.type!=='number'"
       >
 </nz-form-control>
</nz-form-item>

这是Chrome中的错误:

这是app.module.ts:

import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {HashLocationStrategy, LocationStrategy} from '@angular/common';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {HttpClientModule} from '@angular/common/http';
import {NgZorroAntdModule, NZ_I18N, zh_CN} from 'ng-zorro-antd';
import {registerLocaleData} from '@angular/common';
import zh from '@angular/common/locales/zh';

import {AppRoutingModule} from './app-routing.module';
import {AppComponent} from './app.component';


registerLocaleData(zh);

@NgModule({
  declarations: [
  AppComponent,
  ...
  ],
  imports: [
  ...
  FormsModule,
  ReactiveFormsModule,
  ...
  ],
  providers: [{provide: NZ_I18N, useValue: zh_CN}, {provide: LocationStrategy, useClass: HashLocationStrategy}, CheckLoginGuard],
  bootstrap: [AppComponent]
})

我正在使用以下内容:

Angular CLI: 6.2.4
Node: 8.9.0
OS: darwin x64
Angular: 6.0.7
NG-ZORRO-ANTD

3 个答案:

答案 0 :(得分:0)

您需要在 app.component.ts 文件

中导入 FormsModule

步骤:

  1. 打开app.module.ts
  2. 添加以下导入语句

    import { FormsModule } from '@angular/forms';
    
  3. 在导入@NgModule中添加FormsModule

    @NgModule({ imports: [ FormsModule ], })
    

最终代码:

app.component.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms'; //----<<< Adding Import Statement
import { AppComponent } from './app.component';

@NgModule({
 declarations: [
  AppComponent
 ],
 imports: [
  BrowserModule, 
  FormsModule //-------<< Import here
 ],
 providers: [],
 bootstrap: [AppComponent]
})

export class AppModule { }

答案 1 :(得分:0)

您还必须导入ReactiveFormsModule。

那行得通。

@NgModule({ imports: [ FormsModule, ReactiveFormsModule ] })

答案 2 :(得分:0)

您错过了导入angular的CommonModule,它提供了ngmodel相关的结构指令。

更新以上答案:

您正在混合反应形式和模板形式。 请删除[formControlName]属性,因为我们不能同时使用FormsModule和ReactiveForms

如果删除上面的内容,则效果很好。 你可以看到下面的stackblitz https://stackblitz.com/edit/ng-zorro-antd-setup-juf9hp