Angular 2 Rc.5にアップグレードした後にこのエラーが発生しました。これは私のコンポーネントテンプレートです:
<md-input
[(ngModel)]="recipient"
name="recipient"
placeholder="Name"
class="col-sm-4"
(blur)="addRecipient(recipient)">
</md-input>
私のapp.module.tsはFormsModule
をインポートします
私は自分のコンポーネントでprivate recipient;
を宣言しようとしました。
私は何かが足りないのですか?このエラーが発生するのはなぜですか?
No value accessor for form control with name: 'recipient'
このように入力にngDefaultControl属性を追加する必要があります。
<md-input
[(ngModel)]="recipient"
name="recipient"
placeholder="Name"
class="col-sm-4"
(blur)="addRecipient(recipient)"
ngDefaultControl>
</md-input>
この記事のコメントから引用しました:
angular2 rc.5カスタム入力、未指定の名前のフォーム制御用の値なしアクセサ
注:@ angular/materialのそれ以降のバージョンでは、
今日では、代わりに書くべきです:
<md-input-container>
<input
mdInput
[(ngModel)]="recipient"
name="recipient"
placeholder="Name"
(blur)="addRecipient(recipient)">
</md-input-container>
https://material.angular.io/components/input/overview を参照してください。
FormsModuleに属さないmd-inputを使用しているため、必ずMaterialModuleもインポートしてください。