【问题标题】:Unable to add ngModel directive to angular material autocomplete无法将 ngModel 指令添加到角度材料自动完成
【发布时间】:2019-03-05 22:13:19
【问题描述】:

我想在我的 Angular 应用程序的页面中添加一个自动完成字段。

我在模板中添加了以下内容。

<mat-form-field class="example-full-width">
    <input matInput placeholder="Pick one" [(ngModel)]="entity.type" [matAutocomplete]="auto">
    <mat-autocomplete #auto="matAutocomplete">
        <mat-option *ngFor="let option of options" [value]="option">
            {{option}}
        </mat-option>
    </mat-autocomplete>
</mat-form-field>

但是,当我导航到该页面时出现以下错误。

ERROR 错误:多个自定义值访问器与表单控件匹配 具有未指定的名称属性

如果我从模板中删除 [(ngModel)]="entity.type" 指令,错误就会消失。

这个错误的原因是什么?有什么办法可以解决吗?

Here is a stackblitz 用于此问题。错误显示在控制台,可以从页面右下角打开。

【问题讨论】:

  • 分享你的ts代码
  • 如果你觉得可以的话还有更多的html
  • @NoHoney_k1ll 添加了一个 stackblitz 示例
  • 那是因为您使用了ngModel name 属性,它们相互冲突。删除name 属性、ngModel 属性或使用Angular Reactive Forms
  • @Edric 我已经删除了 stackblitz 中的 name 属性,但问题仍然存在。知道为什么吗?

标签: angular angular-material2


【解决方案1】:

发现问题。这是由我在应用程序中使用的TrimValueAccessorModule 引起的。当我删除模块时,问题得到解决。

我可以通过在 input 标记中使用以下类名从 TrimValueAccessorModule 中排除自动完成功能,这样我就可以在不完全删除 TrimValueAccessorModule 的情况下解决问题。

class="ng-trim-ignore"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 2018-03-30
    相关资源
    最近更新 更多