список выбора с проверкой внутри реактивной формы angular, как я могу показать проверки, которые уже были выбраны?
html:
<mat-list-item>
<mat-selection-list formControlName="documents" disabled multiple >
<mat-list-option checkboxPosition="before" *ngFor="let document of setDocuments"
[value]="document.codigo">
{{document.descripcion}}
</mat-list-option>
</mat-selection-list>
</mat-list-item>
Чтобы увидеть подробности операции, загрузите следующий элемент управления формой:
details(){
let obj = this.data.objeto;
let documents = obj.codigoSet;
const usingSplit = documents.split(';');
documents: new FormControl(usingSplit)
}
Я делаю разделение, потому что служба возвращает коды документов в виде строки, там я конвертирую их в массив, но они не отображаются выбранными
<mat-list-item>
<mat-selection-list formControlName="documents" disabled multiple >
<mat-list-option checkboxPosition="before" *ngFor="let document of setDocuments"
[value]="document.codigo" [selected]="selectList">
{{document.descripcion}}
</mat-list-option>
</mat-selection-list>
</mat-list-item>
попробуйте добавить свойство [selected] и создать логическую переменную «selectList», вызвать службу всех документов и сравнить с кодом, который у меня есть, но при попытке назначить этот ответ переменной selectList он выдает ошибку
selectList:boolean;
export class Document {
details(){
let obj = this.data.objeto;
let documents = obj.codigoSet;
const usingSplit = documents.split(';');
this.setForView.subscribe( data =>{
data.map((item) => ({
...item,
this.selectList: usingSplit.some((el) => // error
el === item.codigo
)
}));
}
);
documents: new FormControl(usingSplit)
}
}
Я думаю, что сравнение списка, который у меня есть, с ответом службы - это решение, но я не могу найти способ.