angular - 如何在角度 6 的编辑页面上以反应形式创建动态下拉字段
问题描述
我创建了一个带有 API 值的下拉字段。但我得到所有数据并将其显示在编辑页面中。但下拉字段显示所有下拉值,而不是先前存储的下拉值。这是 Edit.component.html 页面中下拉字段的代码。
<div class="form-group">
<label for="typeofWorkId" class="control-label"> Type of Work </label>
<select id="typeofWorkId" appSelectValidator="select" name="typeofWorkId" class="form-control">
<option value="Select">Select Type of work</option>
<option *ngFor="let typeName of typeofworks" [value]="typeName.typeofWorkId"> {{typeName.name}} </option>
</select>
</div>
这是从 API 获取下拉值的代码(edit.component.ts)。
typeofworks: TypeOfWork[];
ngOnInit() {
this._vendorServices.getTypeOfWork().subscribe((workName) => { this.typeofworks = workName });
}
解决方案
您可以使用[(ngModel)]
在编辑表单中绑定选定的值
HTML 代码:
<div class="form-group">
<label for="typeofWorkId" class="control-label"> Type of Work </label>
<select id="typeofWorkId" formControlName="typeofWorkId" appSelectValidator="select" name="typeofWorkId" class="form-control" [(ngModel)]="alreadySelectedValue.typeofWorkId">
<option value="Select">Select Type of work</option>
<option *ngFor="let typeName of list" [value]="typeName.typeofWorkId"> {{typeName.name}} </option>
</select>
</div>
在 TS 文件中:
alreadySelectedValue = { "typeofWorkId": 11, "name": "Water Proofing" }; // Your already selected value
推荐阅读
- android - 无法实例化活动 ComponentInfo java.lang.ClassCastException
- azure - ARM 部署错误 - 需要建议如何解决它
- java - Java Spring TaskExecutor 在调用 taskExecutor.execute() 方法后没有立即启动
- sql - 如何选择 CustomerName 和平均 ProductPrice
- sql-server - 创建交叉表查询
- java - 如何对多个孩子进行查询?
- mysql - 交叉连接并将值插入到 SQL 中的表中
- exchange-server - 如何从 Active Directory 中获取联系人的 ItemId 或 AttachmentId(照片)?交换网络服务 2007
- powershell - 如何使用 powershell 脚本删除注册表文件
- python-3.x - 在树莓派上运行 python 程序时出现 GLib-GObject-Critical 错误