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

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

У меня есть {amp}lt;mat-select{amp}gt; с 500 options . Я добавил {amp}lt;mat-checkbox{amp}gt; внутри него, чтобы в нем была функция «выбрать все».

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

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

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

HTML:

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

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

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

СПЕЦИФИКАЦИИ:

 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, но я на работе, и он просто не работает. Сожалею.

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

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector