0

这是我的 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
4

3 回答 3

5

您需要在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 { }
于 2018-10-19T04:13:01.867 回答
1

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

更新上面的答案:

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

如果您删除上述内容,则可以正常工作。你可以看到下面的 stackblitz https://stackblitz.com/edit/ng-zorro-antd-setup-juf9hp

于 2018-10-19T07:09:43.877 回答
1

您还必须导入 ReactiveFormsModule。

那可行。

@NgModule({ imports: [ FormsModule, ReactiveFormsModule ] })
于 2018-10-19T06:08:33.443 回答