angular-ui / bootstrap

PLEASE READ THE PROJECT STATUS BELOW. Native AngularJS (Angular) directives for Bootstrap. Smaller footprint (20kB gzipped), no 3rd party JS dependencies (jQuery, bootstrap JS) required. Please read the README.md file before submitting an issue!
http://angular-ui.github.io/bootstrap/
MIT License
14.3k stars 6.74k forks source link

[BUG] UIBS 2.5 UibModal doesn't close correctly #6642

Open Oowaay opened 6 years ago

Oowaay commented 6 years ago

Bug description:

Hello, I got some trouble with uib modal, Sometimes, it's totally random, when I close modal using $uibModalInstance.close(smth) method, it doesn't close properly. I saw lot's of the same issue but can't find the same setup as mine. And as a said it's totally random, i can't reproduce it to make it work 100%.

Link to minimally-working plunker that reproduces the issue:

Here's a plunker reproducing my issue with older version, I don't want to use older version of angular or UIBS

http://plnkr.co/edit/lQMQm5NJuRHkTBfER7cq?p=preview

Steps to reproduce the issue:

Here's my code: Call modal Method:

var modalInstance = $uibModal.open({
                    animation: true,
                    controller: 'ModalInfoMouvementCtrl',
                    templateUrl: '/otawa/infomouvement',
                    size: 'lg',
                    backdrop: 'static',
                    keyboard: true,
                    resolve: {
                        param: function () {
                            return { mouvement: mvt };
                        }
                    }
                });
                modalInstance.result.then(function (mvt) {
                    if (mvt != null) {
                        var respa = mouvementSrv.getMouvementById(mvt.id);
                        respa.then(function (response) {
                            var mvt = convertMouvementData(response.data);
                            $scope.listMouvement[index] = mvt;
                            $scope.selectedmvt = null;
                        }, function (err, status) {
                            $toastr.error(err.data, 'Erreur');
                        });
                    }
                    reloadInstance();
                }, function () {
                });

Closing method on other Controller :

  $scope.close = function (mvt) {
                $uibModalInstance.close(mvt);
            }

Calling modal on button click, then when i finish to fill my form inside the modal, it fade out but I can't click anywhere, and if I inspect HTML i can see the modal HTML. image

Set animation false do not solve the bug.

Any suggestion of what could be wrong ?

Version of Angular, UIBS, and Bootstrap

Angular: 1.5.6 Angular Animate : 1.5.6

UIBS: 2.5.0

Bootstrap: 3.3.7

pjsvis commented 6 years ago

I am having a similar issue trying to close a component modal in Chrome Version 61.0.3163.100 (Official Build) (64-bit). Here is what I see in the sources window:

image

I think this version of Chrome sees this.close as trying to close the window. I am using controllerAs: 'vm' and when I change this.close to vm.close the problem goes away.

pjsvis commented 6 years ago

On IE 11 V11.0.46 I get the following with this.close

image

In Firefox V56.0.1 (64-bit) I get

image

I am pretty sure that this.close used to be ok! Not anymore though!