У меня есть форма редактирования, в которой я хочу показать выбранные параметры, которые извлекаются из базы данных. ниже html код
<mat-select placeholder="Select Year" [compareWith]="compareFn" formControlName="security_deposite_for" multiple>
<mat-option *ngFor="let year of security_deposite_for_yr; let i = index;" [value]="year.val"
(click)="tosslePerOne(i)">
{{year.viewValue}}
</mat-option>
<mat-option #allSelected (click)="toggleAllSelection()" [value]="0">All</mat-option>
</mat-select>
это моя функция, в которой я получаю значения из базы данных
getSecurityDepositeDetailForEdit(bid_id){
this.abcSer.getgetSecurityDepositeDetail(bid_id).subscribe(
res => {
console.log('res in sec deposite',res);
res.forEach(element => {
this.checkedOptions.push({
val: element.sec_deposite_year,
viewValue: element.sec_deposite_year,
});
});
},
err => {
console.log('err in sec details',err);
}
)
}
следующая функция сравнения
compareFn(security_deposite_for_yr,checkedOptions) {
console.log('security_deposite_for_yr 1',security_deposite_for_yr);
console.log('checkedOptions',checkedOptions);
return security_deposite_for_yr && checkedOptions ? security_deposite_for_yr.val === checkedOptions.val : security_deposite_for_yr === checkedOptions;
}
в консоли security_deposite_for_yr имеет значения, но checkOptions не отображает никаких значений.
, как показать выбранные значения в mat multi select
**** Редактировать ******
Я попробовал следующий код
getSecurityDepositeDetailForEdit(bid_id){
this.eauctionSer.getgetSecurityDepositeDetail(bid_id).subscribe(
res => {
console.log('res in sec deposite',res);
this.tenderFrm.security_deposite_for.setValue([res.map(i => i.sec_deposite_year)]);
// res.forEach(element => {
// this.tenFrm.security_deposite_for.setValue(element.sec_deposite_year);
// });
console.log('frm',this.tenderFrm.security_deposite_for.value);
},
err => {
console.log('err in sec details',err);
}
)}
, но он показывает 1-й вариант, выбранный в раскрывающемся списке выбора матов