将ReactiveFormsModule添加到我的angular 4应用程序后,没有获得NgControl错误的提供程序

时间:2018-01-30 15:39:34

标签: angular

我收到此错误 - “模板解析错误:没有NgControl的提供程序”

 The error comes from this line of code

 --> <select (ngModel)="currencies" (ngModelChange)="showPurchase($event)" class="annka-center" name="curencies">
       <option *ngFor="let money of currencies; let i = index" (ngValue)="money" (click)="showPurchase(money)"> {{money.Currency}} </option>
 </select>

上面的代码运行顺利,直到我将ReactiveFormsModule添加到我的应用程序。

我在这里尝试了解决方案

ERROR in : No provider for NgControl Angular AOT

但这对我没用。我正在使用Angular 4.

5 个答案:

答案 0 :(得分:12)

应该是

<select [(ngModel)]="currencies" (ngModelChange)="showPurchase($event)" class="annka-center" name="curencies">
       <option *ngFor="let money of currencies; let i = index" (ngValue)="money" (click)="showPurchase(money)"> {{money.Currency}} </option>
 </select>

还要确保在导入下的app.module.ts中导入FormsModule 从'@ angular / forms'中导入{FormsModule,ReactiveFormsModule};

@NgModule({
    imports: [
         FormsModule      
    ]

答案 1 :(得分:2)

我收到此错误是因为我忘记将this.props.navigation.state.params.update();//you can pass params also if needed 指令添加到模板中的表单控件中,这意味着:

formControlName

答案 2 :(得分:1)

我在 angular 10.x 版本上遇到了同样的问题,我必须在 app.module.ts 中添加 CommonModule。

import {CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

@NgModule({
    imports: [
         CommonModule,
         FormsModule      
    ]

答案 3 :(得分:1)

为了解决这个错误,我在我的 app.module.ts 中导入了 5 个模块(你可以在相关的 component.module.ts 中导入,如果你不想在 app 中添加它.module.ts):

  1. ReactiveForms模块
  2. 表单模块
  3. HttpClientModule
  4. 浏览器动画模块
  5. MatSelectModule

如何导入:

import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { MatSelectModule } from '@angular/material';    
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@NgModule({
    imports: [
         ReactiveFormsModule,
         FormsModule,
         MatSelectModule, 
         HttpClientModule, 
         BrowserAnimationsModule
    ]
// rest of your code

答案 4 :(得分:0)

出现此错误是因为我忘记在输入元素上添加[(ngModel)]

<input [(ngModel)]="firstName/>