angular - 无法将动态数据绑定到 Angular 材质选择表单
问题描述
我无法使用 Angular8 使用 Angular Material 选择表单动态显示数据。我的代码如下。
product.componet.html:
<form [formGroup]="productForm" (submit)="saveProduct($event)" novalidate>
<mat-form-field appearance="outline" class="col-lg-4 col-md-6 col-sm-12">
<mat-label>Product Name</mat-label>
<input matInput placeholder="Product Name" aria-label="Product Name" formControlName="Name" maxlength="70" required>
</mat-form-field>
<mat-form-field appearance="outline" class="col-lg-4 col-md-6 col-sm-12">
<mat-label>Gender</mat-label>
<mat-select
placeholder="Select Gender"
aria-label="Select Gender"
(selectionChange)="onGenderSelectionChanged($event)"
>
<mat-option *ngFor="let s of genders" [value]="s.Code">
<span *ngIf="!s.Code">
</span>
<span *ngIf="s.Code">
{{s.Name}}
</span>
</mat-option>
</mat-select>
</mat-form-field>
</form>
产品.componet.ts:
genders: any = [
'',
{
Code: "M",
Name: "Male"
},
{
Code: "F",
Name: "Female"
},
{
Code: "U",
Name: "Unisex"
}
];
this.productForm.setValue({
Name : String = 'Test product',
Gender: String = 'M(Male)'
})
我能够显示产品名称,但无法显示动态绑定的下拉值。我需要使用 Angular 8 动态显示下拉值。
解决方案
发布的代码中有几处错误:
- 您必须使用
formControlName
for 性别控制进行<mat-select>
控制:
前任:
Here
\/\/\/\/\/\/
<mat-select formControlName="Gender" placeholder="Select Gender" aria-label="Select Gender" (selectionChange)="onGenderSelectionChanged($event)">
<mat-option *ngFor="let s of genders" [value]="s.Code">
<span *ngIf="!s.Code"></span>
<span *ngIf="s.Code"> {{s.Name}}</span>
</mat-option>
</mat-select>
- 虽然为 FormGroup 设置值不需要指定数据类型,并且,
this.productForm.setValue({
Name : 'Test product',
Gender: 'M'
});
不是M(Male)
完全不同的。from M
,用于绑定 matselect 的值。
推荐阅读
- javascript - 在 React 中创建观察者组件 - 将道具传递给孩子
- maven - 如何在 Maven 构建期间允许来自特定域的自签名证书?
- ruby-on-rails - 具有 has_one 关系的模型范围
- python - selenium 使用 chrome webdriver 访问具有更改 ID 的文本输入元素
- nosql - Dynamo 通过多个条件为同一字段选择
- javascript - React - 奇怪的数据循环行为
- python - 在 python 中随机应用 Numpy 的旋转函数
- nginx - Nginx路由问题:子页面刷新到DNS_PROBE_FINISHED_NXDOMAIN错误
- javascript - 从 IPFS 读取 JSON 不可能?
- web-scraping - 如果发生任何错误,保存创建的 CSV 文件