web-dev-qa-db-ja.com

'recipient'という名前のフォームコントロールの値アクセサはありません

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'
60
TheUnreal

このように入力に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 を参照してください。

116

FormsModuleに属さないmd-inputを使用しているため、必ずMaterialModuleもインポートしてください。

11
Ophir Bushinsky