PrimeNg/Angular: 如何显示选中项的标签?
PrimeNg/Angular: How to display the label of a selected item?
.html:
<p-listbox formControlName="userRole"
[options]="this.userRoleItems"
[(ngModel)]="selectedUserProfile.role"
multiple="multiple"
[style]='{"width":"250px"}'
checkbox="checkbox" filter="filter">
</p-listbox>
所选角色:
<span *ngFor="let c of selectedUserProfile.role" style="margin-right: 10px">
{{c}}
</span>
.ts 文件:
userRoleItems: SelectItem[] = [
{ label: 'User Role 1', value: 1 },
{ label: 'User Role 2', value: 2 },
{ label: 'User Role 1', value: 3 }
];
但是我想在选择一个时显示标签而不是值
你可以试试这样:
const labels = userRoleItems.filter(ur => selectedUserProfile.role.indexOf(ur.value) !== 1);
然后您可以遍历标签数组并只打印标签字段。
请注意,代码未经测试,因为我没有完整的示例
在你的*.component.ts中你可以定义一个方法:
labelByValue(value){
let i = this.userRoleItems.find(item => item.value == value);
return i ? i.label : "";
}
在你的 *.component.htm 中使用如下:
<span *ngFor="let c of selectedUserProfile.role" style="margin-right: 10px">
{{labelByValue(c)}}
</span>
.html:
<p-listbox formControlName="userRole"
[options]="this.userRoleItems"
[(ngModel)]="selectedUserProfile.role"
multiple="multiple"
[style]='{"width":"250px"}'
checkbox="checkbox" filter="filter">
</p-listbox>
所选角色:
<span *ngFor="let c of selectedUserProfile.role" style="margin-right: 10px">
{{c}}
</span>
.ts 文件:
userRoleItems: SelectItem[] = [
{ label: 'User Role 1', value: 1 },
{ label: 'User Role 2', value: 2 },
{ label: 'User Role 1', value: 3 }
];
但是我想在选择一个时显示标签而不是值
你可以试试这样:
const labels = userRoleItems.filter(ur => selectedUserProfile.role.indexOf(ur.value) !== 1);
然后您可以遍历标签数组并只打印标签字段。 请注意,代码未经测试,因为我没有完整的示例
在你的*.component.ts中你可以定义一个方法:
labelByValue(value){
let i = this.userRoleItems.find(item => item.value == value);
return i ? i.label : "";
}
在你的 *.component.htm 中使用如下:
<span *ngFor="let c of selectedUserProfile.role" style="margin-right: 10px">
{{labelByValue(c)}}
</span>