Угловой материал $mdDialog.hide() не работает

Я работаю с угловым материалом. я использую $mdDialog для создания всплывающего окна в моем приложении. все работает нормально, за исключением того, что $mdDialog.hide() не работает.

       $ctrl.footerModal = function () {
            $mdDialog.show({
                template: '<md-dialog aria-label="Privacy Policy">' +
                '<md-dialog-content>' +
                '<div class="md-dialog-content">' +
                '<h2>Privacy Policy</h2>' +
                '<p> sum has been the industrys standard dummy text ever since the 1500s, when an unknown printer ' +
                'took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, ' +
                'but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s ' +
                ' with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desk</p>' +
                '<p>' +
                '</div>' +
                '</md-dialog-content>' +
                '<md-dialog-actions layout="row">' +
                '<span flex>' + '</span>' +
                '<md-button ng-click="$ctrl.cancel()">' +
                'Ok' +
                '</md-button>' +
                '</md-dialog-actions>' +
                '</md-dialog>',
                parent: angular.element(document.body),
                clickOutsideToClose: true
            });
            $ctrl.cancel = function () {
                $mdDialog.hide();
            };
        }

Может ли кто-нибудь сказать мне, что я делаю неправильно здесь


person Shareer    schedule 16.11.2016    source источник
comment
Где вы использовали $mdDialog.hide()?   -  person Ramesh Rajendran    schedule 16.11.2016
comment
я обновил код.   -  person Shareer    schedule 16.11.2016


Ответы (2)


Пожалуйста, напишите свой код вне функции $ctrl.footerModal,

Ваш код должен быть

$ctrl.footerModal = function () {
            $mdDialog.show({
                template: '<md-dialog aria-label="Privacy Policy">' +
                '<md-dialog-content>' +
                '<div class="md-dialog-content">' +
                '<h2>Privacy Policy</h2>' +
                '<p> sum has been the industrys standard dummy text ever since the 1500s, when an unknown printer ' +
                'took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, ' +
                'but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s ' +
                ' with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desk</p>' +
                '<p>' +
                '</div>' +
                '</md-dialog-content>' +
                '<md-dialog-actions layout="row">' +
                '<span flex>' + '</span>' +
                '<md-button ng-click="cancel()">' +
                'Ok' +
                '</md-button>' +
                '</md-dialog-actions>' +
                '</md-dialog>',
                parent: angular.element(document.body),
                clickOutsideToClose: true
            });
         }

 $ctrl.cancel = function () {
             $mdDialog.hide();
         };
person Ramesh Rajendran    schedule 16.11.2016

Вы должны использовать .hide,

$scope.cancel = function() {
   $mdDialog.hide();
};

ИЗМЕНИТЬ:

Ваша функция $ctrl.cancel должна быть размещена снаружи, как упоминал Рамеш.

ДЕМО

person Sajeetharan    schedule 16.11.2016
comment
Он также использует это же - person Ramesh Rajendran; 16.11.2016
comment
@RameshRajendran нет, он использовал .cancel, теперь он отредактировал - person Sajeetharan; 16.11.2016
comment
Это у меня есть комментарий. Пожалуйста, обновите свой ответ на обновленный вопрос OP. Я удаляю свой голос против - person Ramesh Rajendran; 16.11.2016
comment
@RameshRajendran, вы не можете проверить демо, которое я предоставил? - person Sajeetharan; 16.11.2016