使用preventDefault()阻止导航在angularjs $ locationChangeStart上不起作用

时间:2018-11-09 02:21:41

标签: javascript angularjs location preventdefault

当他们在现有页面上尚未保存更改时,我试图阻止用户导航到其他页面。 我使用$ locationChangeStart并尝试触发一条弹出消息,询问用户是否真的要导航而不保存更改。

但是,在触发我的弹出窗口之前,视图也会发生变化。 只是我的event.preventDefault()不起作用。 不知道我在做什么错,但这是代码:

$rootScope.$on('$locationChangeStart', function (event) {
        var path = $location.path();
        if (self.editCableMode || self.editBinMode) {
            SweetAlert.swal({
                title: 'Still Editing',
                text: 'You have unsaved changes. Are you sure you want to leave?',
                type: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#F8BB86',
                confirmButtonText: 'Yes'
            }, function (isConfirm) {
                if (isConfirm) {
                    console.log(isConfirm)
                    self.editCableMode = false;
                    self.editBinMode = false;
                }else{
                    console.log(isConfirm)

                    event.preventDefault();
                }
            });

        }
    });

0 个答案:

没有答案