72

升级到 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'
4

2 回答 2

143

您应该像这样将 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

于 2016-08-17T16:32:37.567 回答
15

确保您也导入 MaterialModule,因为您使用的是不属于 FormsModule 的 md-input

于 2016-08-16T15:44:28.380 回答