我正在尝试在我的应用中首次使用ngControl:
<md-input placeholder="Amount" value="0" ngControl="ammount" required></md-input>
在我的组件中添加了以下内容:
import { FORM_PROVIDERS,FORM_DIRECTIVES } from '@angular/common';
..
directives: [MD_INPUT_DIRECTIVES,
FORM_DIRECTIVES,
],
providers: [FORM_PROVIDERS],
我收到此错误:
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>
我错过了什么?
答案 0 :(得分:12)
我认为您忘记将md-input
组件包装在form
标记中,否则ngControl
将无效:
<form>
...
<md-input placeholder="Amount" value="0" ngControl="ammount" required></md-input>
...
</form>
该指令只能用作NgForm或NgFormModel的子代。
答案 1 :(得分:1)
要解决此问题,您有两个选择: A.在main.ts中:
import {FORM_PROVIDERS} from 'angular2/common';
// other code here
bootstrap(AppCmp, [
ROUTER_PROVIDERS,
provide(LocationStrategy, { useClass: HashLocationStrategy }),
FORM_PROVIDERS
]);
B中。在使用表单的组件中:
import {FORM_PROVIDERS, FORM_DIRECTIVES} from 'angular2/common';
@Component({
providers: [FORM_PROVIDERS],
directives: [FORM_DIRECTIVES]
})
取自github上的这些相同问题
可以帮助你。