【发布时间】:2019-01-25 10:00:36
【问题描述】:
使用 Angular 2 和 Angular Material 6.4.7
我需要使用 mat-select 组件设置一个默认选择选项。
当我不使用 [formControl] 绑定时,以下代码可以正常工作并设置默认值。
下面的例子:
<mat-form-field>
<mat-select [(value)]="currentYear" placeholder="Select A Year" [formControl]="year.get('year')" >
<mat-option *ngFor="let y of yearsArr;" [value]="y">{{ y }}</mat-option>
</mat-select>
</mat-form-field>
当前年份 (currentYear) 是一个变量,用于设置当前年份的值。
但是,当我使用表单控件绑定时,它无法在 mat-select 组件上设置默认选项。
下面的例子:
<mat-form-field>
<mat-select [(value)]="currentYear" placeholder="Select A Year" [formControl]="year.get('year')" >
<mat-option *ngFor="let y of yearsArr;" [value]="y">{{ y }}</mat-option>
</mat-select>
</mat-form-field>
我搜索了堆栈溢出并遇到了这个可行的解决方案,但是我在浏览器控制台中收到警告,我不确定这是否是实现此目标的正确方法。
下面的例子:
<mat-form-field>
<mat-select [(ngModel)]="currentYear" placeholder="Select A Year" [formControl]="year.get('year')" >
<mat-option *ngFor="let y of yearsArr;" [value]="y">{{ y }}</mat-option>
</mat-select>
</mat-form-field>
我收到的警告如下:
看起来您在同一个表单字段上使用 ngModel 表单控件。支持使用 ngModel 输入属性和 带有响应式表单指令的 ngModelChange 事件已经 在 Angular v6 中已弃用,将在 Angular v7 中删除。 有关这方面的更多信息,请在此处查看我们的 API 文档:https://angular.io/api/forms/FormControlDirective#use-with-ngmodel
我已经阅读了上面的输出,但仍然不明白如何解决这个问题。
任何帮助澄清或启发我实现这一点的正确方法将不胜感激。
【问题讨论】:
-
你可以使用这个:stackoverflow.com/questions/54340907/…>
-
您好,您的建议仅用于注入“默认选项控件”。我想选择并设置一个等于 currentYear 变量的现有默认选项。
标签: angular angular-material angular-material-6