«вне стека» с использованием IE11, angularjs и плагина highcharts-ng - PullRequest
0 голосов
/ 24 января 2020

Я обнаружил проблему с IE11. Когда несколько диаграмм было обработано, IE11 выдает некоторые ошибки "out of stack stack".

Это JSFiddle с кодом.

После некоторых тестов я думаю, что проблема находится в плагине " highcharts-ng " в этой функции (строка 103):

    this.$doCheck = function () {
            if (!detector(ctrl.config, prevConfig)) {
            prevConfig = angular.merge({}, ctrl.config);
            mergedConfig = getMergedOptions($element, ctrl.config, seriesId);

            //Remove any unlinked objects before adding
            this.removeUnlinkedObjects(mergedConfig);

            //Allows dynamic adding Axes
            this.addAnyNewAxes(mergedConfig.yAxis, ctrl.chart, false);
            this.addAnyNewAxes(mergedConfig.xAxis, ctrl.chart, true);

            //Allows dynamic adding of series
            if (mergedConfig.series) {
                // Add any new series
                angular.forEach(ctrl.config.series, function (s) {
                    if (!ctrl.chart.get(s.id)) {
                        ctrl.chart.addSeries(s);
                    }
                });
            }
            ctrl.chart.update(mergedConfig, true);
        }
    };

Чтобы избежать проблемы, я изменил функцию, добавив

    var is_ie = navigator.userAgent.indexOf("MSIE ") > -1 || navigator.userAgent.indexOf("Trident/") > -1;
    if ((is_ie) || (ctrl.disableChangeDetection === false)) {
        return;
    }

после первого ряда.

Можно ли устранить проблему, избегая моего обходного пути?

...