簡體   English   中英

使用ngControl導致錯誤:沒有ControlContainer的提供程序

[英]Using ngControl caused error: No provider for ControlContainer

我正在嘗試在我的應用中第一次使用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>

我錯過了什么?

我認為你忘了將md-input組件包裝在form標簽中,否則ngControl將無法工作:

<form>
   ...
   <md-input placeholder="Amount" value="0" ngControl="ammount" required></md-input>
   ...
</form>

該指令只能用作NgForm或NgFormModel的子代。

要解決這個問題,您有兩個選擇: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上的這些相同問題中獲取

可以幫到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM