使用ngControl导致错误:没有ControlContainer的提供程序

The*_*eal 5 angular

我正在尝试在我的应用中第一次使用ngControl:

<md-input placeholder="Amount" value="0" ngControl="ammount" required></md-input>
Run Code Online (Sandbox Code Playgroud)

在我的组件中添加了以下内容:

import { FORM_PROVIDERS,FORM_DIRECTIVES } from '@angular/common';

..

directives: [MD_INPUT_DIRECTIVES,
    FORM_DIRECTIVES,
    ],
    providers: [FORM_PROVIDERS],
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

browser_adapter.ts:78 EXCEPTION: Error: Uncaught (in promise): Template parse errors:
No provider for ControlContainer ("

[ERROR ->]<md-input placeholder="Amount" value="0" ngControl="ammount" required></md-input>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

yur*_*zui 14

我认为您忘记将md-input组件包装在form标签中,否则ngControl将无法工作:

<form>
   ...
   <md-input placeholder="Amount" value="0" ngControl="ammount" required></md-input>
   ...
</form>
Run Code Online (Sandbox Code Playgroud)

该指令只能用作NgForm或NgFormModel的子代.