0

特定の条件が満たされた場合、ユーザーがページを離れることを確認する必要があります。問題は、場所の変更がダイアログがユーザーの回答を得るのを待っていないことです。

これが私のコードです:

角度モジュール 1:

...
function confirmLeavePage(e, newUrl) {
        if(form.cod.value) {
            customDialog.confirmDialog('Title','Leave?').then(
            function(){
                console.log('go to selected page');
            },function(){
                e.preventDefault();
            });
        }
    }

    $scope.$on("$locationChangeStart", confirmLeavePage);
...

角度モジュール 2 :

angular.module('dialog').service('customDialog', function($mdDialog, $q, $location) {

    this.confirmDialog = function(title, content){
        var deferred = $q.defer();
        $mdDialog.show($mdDialog.confirm({
            templateUrl:'confirmDialog.html',
            title : title,
            textContent : content,
            ok : 'Confirm',
            cancel: 'Cancel'
        })).then(function() {
            console.log('confirmed');
            deferred.resolve();
        }, function() {
           console.log('abort');
           deferred.reject();
        });
        return deferred.promise; 
    }


});

何か案は?

4

1 に答える 1