Я использую mat-select для заполнения массива объектов в раскрывающемся списке. есть возможность выбрать и отменить выбор всех значений, нажав на ВСЕ. Для этого я освобождаю связанный с ним элемент управления формой, а для выбора всего заполняю элемент управления формой всеми идентификаторами. Для малых данных, он работает нормально. Для данных более 800, когда я очищаю форму управления при отмене выбора al, выдает ошибку (максимальный размер стека вызовов превышен в SafeSubscriber.push ../ node_modules / rxjs / _esm5 / internal/Subscriber.js.SafeSubscriber.__tryOrUnsub (Subscriber.js: 200) в SafeSubscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.SafeSubscriber.next (Subscriber.js: 130) 100) ** component.html
<mat-select [formControl]="courseFormControl" multiple aria-label="Course Name"
[(ngModel)]="selectedCourseIds">
<mat-option *ngFor="let course of courseList"
(onSelectionChange)="onCourseSelect($event,courseFormControl)">
{{course.courseName}}
</mat-option>
</mat-select>
component.ts
onCourseSelect(event, form) {
if(event.isUserInput) {
let listCourseId = [];
//data contains the total list
data.map((val,ind) => {
if(val.selected === true){
listCourseId.push(val.courseId)
}
});
this.selectedCourseIds = listCourseId;
this.courseFormControl.setValue(listCourseId);
}
Ошибка при удалении всех
core.js: 15724 ERROR RangeError: Максимальный стек вызововпревышен размер в SafeSubscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.SafeSubscriber .__ tryOrUnsub (Subscriber.js: 200) в SafeSubscriber.push ../ node_modules / rxjs / _esm5 / internals. SafeSubscriber.next (Subscriber.js: 130) в Subscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.Subscriber._next (Subscriber.js: 76) в Subscriber.push ../ node_modules / rxjs /_esm5 / внутренний / Subscriber.js. Subscriber.next (Subscriber.js: 53) в EventEmitter.push ../ node_modules / rxjs / _esm5 / internal / Subject.js.Subject.next (Subject.js: 47) в EventEmitter.push ../ node_modules / @ angular/core/fesm5/core.js.EventEmitter.emit (core.js: 13499) в MatOption.push ../ node_modules/@angular/material/esm5/core.es5.js.MatOption._emitSelectionChangeEvent (core.es5.js): 2803) в MatOption.push ../ node_modules/@angular/material/esm5/core.es5.js.MatOption.deselect (core.es5.js: 2595)