"Превышен максимальный размер стека вызовов" при смене модели push, когда слишком много изменений - javascript


0

У меня есть <mat-select> с 500+ options. Я добавил <mat-checkbox> внутри него, чтобы в нем была функция "выбрать все".

Когда я выбираю этот checkbox, все 500+ options выбираются, объект в модели за ним обновляется, все работает нормально.

Но когда я отменяю выбор, после очистки массива я получаю ошибку RangeError: Maximum call stack size exceeded при обновлении модели.

У меня есть другой <mat-select> с несколькими значениями (10-), и он работает нормально, так что это может быть проблема количества.

HTML:

<mat-select placeholder="Rubros" formControlName="rubros" [(ngModel)]="promocion.rubros" [matTooltip]="getRubrosTooltip()" required multiple>
  <mat-checkbox class="mat-option" (change)="toggleAllSelectionRubros()" #selectAllRubros>Todos</mat-checkbox>
  <mat-option *ngFor="let rubro of rubrosAll" [value]="rubro.codigo">
    {{rubro.descripcion}}
  </mat-option>
</mat-select>

TS (это всего лишь одна из тех вещей, которые я пробовал с тем же результатом):

toggleAllSelectionRubros() : void {
    let rubros: string[] = [];
    if(this.checkRubrosTodos.checked){
        rubros = this.rubrosAll.map(({codigo}) => codigo);
    }
    this.promocion.rubros = rubros;
}

SPECS:

Angular CLI: 6.2.9
Node: 10.15.0
OS: win32 x64
Angular: 6.1.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router


Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.8.9
@angular-devkit/build-angular     0.8.9
@angular-devkit/build-optimizer   0.8.9
@angular-devkit/build-webpack     0.8.9
@angular-devkit/core              0.8.9
@angular-devkit/schematics        0.8.9
@angular/cdk                      6.4.7
@angular/cli                      6.2.9
@angular/material                 6.4.7
@ngtools/webpack                  6.2.9
@schematics/angular               0.8.9
@schematics/update                0.8.9
rxjs                              6.4.0
typescript                        2.9.2
webpack                           4.16.4

Я ожидаю, что опции будут отменены без этой ошибки, потому что тогда это нарушает функциональность флажка и больше не работает. Я просто могу выбрать/отменить выбор всего один раз.

Я хотел бы привести пример на stackblitz, но я на работе, и он просто не работает. К сожалению.

Заранее спасибо.

Источник
  •  52
  •  0
  • 7 май 2020 2020-05-07 17:38:48

Ответов пока нет