Не удается закрыть модальное всплывающее окно после отправки формы - PullRequest
0 голосов
/ 28 июня 2018
angular.module("simpleModalPop").controller("applicationListCtrl", [ "$scope", "masterService", "$rootScope", "Notification", "applicationService", "Constant", "$filter", "$state","$uibModal",
    function($scope, masterService, $rootScope, Notification, applicationService, Constant,$filter,$state, $uibModal) {
        console.log("applicationListCtrl....--->");
        $scope.modalInstanceObj = {};
        $scope.openModal = function(selected) {
            if($scope.currentObj.coApplicantUserId == 5){
                var modalInstance = $uibModal.open({
                    ariaLabelledBy : 'modal-title',
                    ariaDescribedBy : 'modal-body',
                    templateUrl : 'application/coApplicantProfile.html',
                    controller : 'profCtrl',
                    controllerAs : '$ctrl',
                    size : 'lg',
                    resolve : {
                    }
                });

                modalInstance.result.then(function(){
                    console.log("Modal is dimissed !");
                },
                function(res){
                    $scope.currentObj.coApplicantUserId={};
                });

                $scope.modalInstanceObj = modalInstance;
            }
        }

    } ]);

angular.module("simpleModalPop").controller("profCtrl", function($scope, userService) {

    $scope.initUserObj();
    $scope.createNewCoApplicant = function(){
        console.log("createNewCoApplicant");

        userService.creatCoApplicantProfile().then(
                function(success) {
                    $scope.isDisable = false;
                    if(success.data.status == 200){
                        $scope.modalInstanceObj.close('closed');
                    }else{
                        console.log(success.data.message);
                    }
                }, function(error) {
                    $scope.isDisable = false;                   
                    $scope.modalInstanceObj.close('closed');
         });        
    }

});

Выше находится мой js-файл, и я пытаюсь закрыть всплывающее модальное окно после отправки формы. но это дает мне ошибку

"Ошибка типа: невозможно прочитать свойство 'close' из неопределенного"

Я уже ввел ['ui.bootstrap'] в другой файл js. Я использую angularjs V 1.7.x

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

Вы определили '$ scope.modalInstanceObj' в контроллере 'applicationListCtrl', когда пытаетесь получить доступ к нему из другой области видимости, которая имеет контроллер 'profCtrl'. Попробуйте использовать события, если эти два шаблона / контроллеры являются родственными или дочерними, или попробуйте получить доступ, используя свойства parent / child.

0 голосов
/ 28 июня 2018

Попробуйте это ...

Ввести $uibModalInstance в контроллер profCtrl

Заменить $scope.modalInstanceObj.close('closed'); на $uibModalInstance.close('closed');

angular.module("simpleModalPop").controller("profCtrl", function($scope,$uibModalInstance,userService) {

    $scope.initUserObj();
    $scope.createNewCoApplicant = function(){
        console.log("createNewCoApplicant");

        userService.creatCoApplicantProfile().then(
                function(success) {
                    $scope.isDisable = false;
                    if(success.data.status == 200){
                      $uibModalInstance.close('closed'); //replaced  $scope.modalInstanceObj.close('closed');
                    }else{
                        console.log(success.data.message);
                    }
                }, function(error) {
                    $scope.isDisable = false;                   
                    $uibModalInstance.close('closed');
         });        
    }

});
0 голосов
/ 28 июня 2018

Ошибка в этих типах линий

$scope.modalInstanceObj.close

Поскольку $ scope.modalInstanceObj не определено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...