angular - 在 *ngFor 中获取完整的下拉列表项
问题描述
我想获取我当前在下拉列表中选择的元素的完整对象。目前我得到了选定的值,这对我来说很好!但另外我想获得完整的对象。我该怎么做?
<select [(ngModel)]="user" (change)="fn_consolidadoUsuario()" mdbInput >
<option *ngFor="let item of aUser" [value]="item.iduser">{{item.name}}
</option>
user:any
aUser:
[
{
"iduser":1, "name":"joe"
},
{
"iduser":1, "name":"berta"
},
{
"iduser":1, "name":"francisco"
}
]
this.user=1; //value by default
fn_consolidadoUsuario(){
console.log(this.user)// 1
//also I need the actual item {"iduser":1, "name":"joe"}
}
解决方案
使用[ngValue]="item"
和[compareWith]="compareData"
为此。
组件.ts
user:any={"iduser":2,"name":"berta"}
aUser=[
{"iduser":1, "name":"joe"},
{"iduser":2, "name":"berta"},
{"iduser":3, "name":"francisco"}
]
fn_consolidadoUsuario(){
console.log(this.user)
}
compareData(a, b) {
return a && b && a.iduser == b.iduser;
}
组件.html
<select [(ngModel)]="user" (change)="fn_consolidadoUsuario()" mdbInput [compareWith]="compareData" >
<option *ngFor="let item of aUser" [ngValue]="item">{{item.name}}
</option>
</select>
<pre>{{user | json}}</pre>
推荐阅读
- javascript - index.js 转换为 index.ts 但看到我无法理解的奇怪错误
- django - Django 表单和 CBV CreateView 无法将 request.user 分配给用户字段
- python - mypy "Optional[Dict[Any, Any]]" 在标准过滤器、地图中不可索引
- html - 悬停时侧边栏不出来
- reactjs - 当某些条件通过时,如何在反应中启用和禁用 p 标签
- awk - AWK 命令将 YYYYMMDD 减少 4 年
- python-3.x - Cloud Run 连接到 Cloud SQL 模块错误 Python
- jmeter - 无法使用设备连接字符串连接到 iothub - Jmeter
- java - 使用 Quartz 在特定时间停止任务
- flutter - 如何在颤动中更新共享偏好中的值