多選下拉串列僅傳遞 2 個欄位 id-field 和 text 欄位。但是我需要所有欄位都通過表單控制元件名稱我該如何解決這個問題?
HTML
<ng-multiselect-dropdown
formControlName="benefitId"
[(ngModel)]="benefitId"
[placeholder]="'Benefits'"
[data]="BenefitList"
[settings]="dropdownSettings"
>
</ng-multiselect-dropdown>
打字稿
this.dropdownSettings = {
singleSelection: false,
idField: 'benefitId',
textField: 'name',
selectAllText: 'Select All',
unSelectAllText: 'UnSelect All',
itemsShowLimit: 1,
allowSearchFilter: true,
};
福利清單:
"Status": true,
"Message": "All Benefits fetched",
"Info": [
{
"benefitId": 1,
"name": "Award Winning",
"image": "**image url**"
},
{
"benefitId": 2,
"name": "Award Winning2",
"image": "**image url**"
}
]
輸出:
benefitId:
Array(2)
0:
{benefitId: 1, name: 'Award Winning'}
1:
{benefitId: 2, name: 'Eco-Friendly'}
length: 2
[[Prototype]]:
Array(0)
需要的輸出:
benefitId:
Array(2)
0:
{benefitId: 1, name: 'Award Winning',image:'**image url**'}
1:
{benefitId: 2, name: 'Eco-Friendly',image:'**image url**'}
length: 2
[[Prototype]]:
Array(0)
我該如何解決這個問題?或者是否有任何其他易于訪問的多選下拉選項
uj5u.com熱心網友回復:
嘗試使用此代碼將所有資料欄位放入新陣列中
var datalistfromApi=[
{
"benefitId": 1,
"name": "Award Winning",
"image": "*image url*"
},
{
"benefitId": 2,
"name": "Eco-Friendly",
"image": "*image url*"
}
];
var selectedValues=[
{benefitId: 1, name: 'Award Winning'},
{benefitId: 2, name: 'Eco-Friendly'}
];
// A comparer used to determine if two entries are equal.
const isSameUser = (a, b) => a.benefitId === b.benefitId && a.name === b.name;
// Get items that only occur in the left array,
// using the compareFunction to determine equality.
const onlyInLeft = (left, right, compareFunction) =>
left.filter(leftValue =>
right.some(rightValue =>
compareFunction(leftValue, rightValue)));
const onlyInA = onlyInLeft(datalistfromApi, selectedValues, isSameUser);
const result = [...onlyInA];
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/510205.html
標籤:有角度的
