角度错误:NodeInjector:NOT_FOUND [ControlContainer]

san*_*jay 23 mean mean-stack angular

core.js:5873 错误错误:NodeInjector:NOT_FOUND [ControlContainer]

有时当我重新启动项目时,它运行得很好。app.component.html 中只有变化:

<div class="container">
  <div class="row">
    <div class="col-md-4">
      <form action="">

        <div class="form-group">
          <label for="">Username</label>
          <input type="text" name="username" class="form-control" />
        </div>
        <div class="form-group">
          <label>Password</label>
          <input type="password" class="form-control">
        </div>
        <div class="form-group">
          <label>Confirm Password</label>
          <input type="password" class="form-control">
        </div>
        <div>
          <button type="submit" class="btn btn-primary btn-block">Register</button>
        </div>
      </form>
      
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Ken*_*ngi 32

app.module.ts我添加ReactiveFormsModule我的imports部分。请记住在顶部将其导入为:import { ReactiveFormsModule} from '@angular/forms

在您的实例中app.component.ts,您必须定义实例并通过以下方法FormGroup初始化/注册它:ngOnInit

    import { FormGroup, FormControl } from '@angular/forms'; //imports
.......................................................................
    myForm:FormGroup;  
    ngOnInit(){
         this.myForm = new FormGroup({          
               'name':new FormControl(null), //note, can have up to 3 Constructor Params: default value, validators, AsyncValidators
               'email':new FormControl(null,Validators.email)

          })
    }
Run Code Online (Sandbox Code Playgroud)

然后将表单绑定到FormGroup实例myForm

<form [formGroup]="myForm">
Run Code Online (Sandbox Code Playgroud)

请注意,nameemail是需要使用以下方式绑定的表单中的控件formControlName

<input type="text" name="name" formControlName="name">
Run Code Online (Sandbox Code Playgroud)


小智 11

您必须将两者都导入 import { FormsModule } from '@angular/forms'; import { ReactiveFormsModule } from '@angular/forms';到相应的 module.ts 文件中。这对我有用。

  • 对于遇到此问题的其他人,我不仅必须将“import {ReactiveFormsModule} from '@angular/forms';”添加到“app.module.ts”,还必须将其添加到我的表单的 ts 文件中。 (2认同)

小智 7

在您的代码中缺少 formGroup 试试这个: <form [formGroup] = "">


小智 5

您的问题与此问题非常相似,并且您的代码看起来丢失了,[formGroup]因为它在此问题中提到:

Angular 5:“没有 ControlContainer 的提供者”

如果你尝试它的答案,那对你有用吗?