$ uibModal хранит изменения даже после закрытия - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь интегрировать uibModal в свое приложение, которое позволит пользователям изменять настройки. Моя проблема в том, что если я внесу изменения в настройки, а затем закрою модальное окно без сохранения, изменения по-прежнему будут присутствовать при открытии модального резервного копирования.

У меня есть обычный контроллер, чтобы открыть модал (все сидит на $scope):

            var settings = $scope.site.smartboard_settings;


            var modalInstance = $uibModal.open({
                animation: true,
                backdrop: 'static',
                templateUrl: 'app/components/modals/modal.smartboard.settings.tpl.html?bust=' + Math.random().toString(36).slice(2),
                resolve: {
                    Settings: function() {
                        return settings;
                    }
                },
                controller: 'EditSmartboardSettingsModalController',
                controllerAs: '$ctrl'
            });

И у меня есть мой модальный контроллер:

.controller( 'EditSmartboardSettingsModalController',
    function( $uibModalInstance, $timeout, Settings ) {


        var $ctrl = this;
        $ctrl.settings = Settings;
        $ctrl.submitted = false;



        $ctrl.submitForm = function( isValid ) {
        ...
        ...

Итак, я открываю модальный режим и меняю настройки. Затем я закрываю модальное и снова открываю его, и измененный параметр все еще изменяется.

Я понимаю, что это должно иметь какое-то отношение к $scope, однако я подумал, что, передав settings и используя controllerAs, я не должен ничего изменять в $scope.

1 Ответ

0 голосов
/ 23 мая 2019

Angularjs никогда не справляется с объектами сам, когда вы передаете params - это будет очень дорого. В этой конкретной ситуации вы должны скопировать расчеты в модальном контроллере, например ::10000

$ctrl.settings = angular.copy(Settings);
...