【发布时间】:2021-03-08 19:04:14
【问题描述】:
晚上好,
我一直在使用下拉菜单时遇到问题,尤其是在按组组织时。首先,需要一些时间来了解用于填充下拉列表的选项中的数组需要采用非常特殊的方式。好的,我的 API 现在返回它想要的内容,我可以显示组标题、单个项目,并且可以将所选项目映射到变量。很好,但我只能映射所选项目的标签(或值,我不确定),而我真正想要的是我发送的其他数据。
下面是我的 Angular 组件接收到的 JSON(你会看到我有点困惑并且浪费了一些属性……我不确定 PrimeNG 想要什么,正在努力适应):
[
{
"group": null,
"label": "First group",
"value": "First group",
"items": [
{
"id": 1,
"name": null,
"label": "Par unité",
"value": "Par unité",
"description": null
},
{
"id": 2,
"name": null,
"label": "Par employé",
"value": "Par employé",
"description": null
}
]
},
{
"group": null,
"label": "Second group",
"value": "Second group",
"items": [
{
"id": 7,
"name": null,
"label": "Temps entre démande et acceptation",
"value": "Temps entre démande et acceptation",
"description": null
},
{
"id": 9,
"name": null,
"label": "something else",
"value": "something else",
"description": null
}
]
}
]
HTML:
<p-dropdown [options]="clientReports"
([ngModel])="selectedReport" (onChange)="onReportChange($event)" placeholder="Choose a report" [group]="true">
TS:
clientReports: any[];
selectedReport: any;
onReportChange(event) {
this.selectedReport = event.value;
console.log(this.selectedReport);
}
问题和期望的结果:
我认为由于 onChange 调用,我的变量 selectedReport 现在具有所选报告的值(或标签...)(来自 JSON 中的“项目”)。太好了,但是我稍后需要引用该 ID,但我似乎无法弄清楚如何。
需要明确的是,我不希望 id 显示在下拉菜单上,但我需要将该信息传递给 selectedReport(或者,如果我需要第二个变量,我不在乎,我只需要该数据)。
在下拉列表的文档中,我看到有多个属性,例如 optionLabel、optionValue、dataKey 等。其中许多会更改下拉列表中显示的值,其他我似乎看不到它们的作用。
希望有人能帮我解决这个问题。
提前致谢。
【问题讨论】:
标签: angular drop-down-menu primeng