angular - ngControl [FormControl] Angular 6 没有提供者
问题描述
我正在学习 Angular。虽然官方教程对我来说效果很好,但我还是被 Reactive Forms 的“hello world”所困。我正在关注https://angular.io/guide/reactive-forms。我在另一个明智的工作项目中创建了一个新组件,以使用 ReactiveForm 创建一个输入文本框。模板html如下:
<div>
<label>
Name:
<input type="text" [formControl]="name">
</label>
</div>
组件类如下所示
import { Component, OnInit } from '@angular/core';
import {FormControl} from '@angular/forms';
@Component({
selector: 'app-party-worker',
templateUrl: './party-worker.component.html',
styleUrls: ['./party-worker.component.scss']
})
export class PartyWorkerComponent implements OnInit {
name = new FormControl('');
constructor() { }
ngOnInit() {
}
}
浏览器中的错误是这样的。
Uncaught Error: Template parse errors:
No provider for NgControl ("
<label>
Name:
[ERROR ->]<input type="text" [formControl]="name">
</label>
</div>"): ng:///ViewsModule/PartyWorkerComponent.html@3:6
是的,我已经导入了 ReactiveFormsModule。我的角度版本,如果显示ng --version
如下
Angular CLI: 7.0.5
Node: 11.1.0
OS: darwin x64
Angular:
...
Package Version
------------------------------------------------------
@angular-devkit/architect 0.10.5
@angular-devkit/core 7.0.5
@angular-devkit/schematics 7.0.5
@schematics/angular 7.0.5
@schematics/update 0.10.5
rxjs 6.3.3
typescript 3.1.6
我不明白我做错了什么。任何帮助表示赞赏。
解决方案
要完成这项工作,您必须按照ReactiveFormsModule
您的问题所建议@NgModule
的那样导入。ViewsModule
AsFormControl
是作为的一部分ReactiveFormsModule
而不是FormsModule
.
...
import { ReactiveFormsModule, ... } from '@angular/forms';
@NgModule({
imports: [..., ReactiveFormsModule, ...],
...
})
export class ViewsModule {...}
推荐阅读
- python-3.x - PermissionError: [Errno 13] Permission denied:in python 。我也检查了访问权限
- javascript - javascript url.indexOf 等于不包含
- r - 在 R 中为 2 个维度的 3 个变量绘制 3D 图表
- spring - Spring HTTP 客户端超时 - Web 服务调用 - 响应错误
- coldfusion - 使用 ColdFusion 计算生命周期方法中的命中数
- ruby-on-rails - 使用 Rails 5 完成课程和模块分配给用户
- c# - 如何将 DapperRow 转换为字典
- matlab - 在 Matlab R2014b+ (HG2) 上获得可靠的渲染
- javascript - 如何让 event.target 返回特定的目标元素?
- elasticsearch - 来自 WebAPI 的 JsonResult 响应用于 Elasticsearch NEST 查询