在autologout上关闭模态

时间:2014-08-27 19:23:44

标签: angularjs modal-dialog logout

在我的angularjs应用程序中,如果用户在某些时间内处于非活动状态,则会自动注销使用。问题是,如果模态对话框打开,路径更改和使用将被注销,但模态仍保持打开状态。

解决这个问题的一种方法是关闭scope.$destroy上的模态。但是我必须记得在每个控制器中编写代码,这不是一个理想的解决方案,因为我可能忘了这样做。

有没有其他通用方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以注入$ modalStack服务并调用函数$modalStack.dismissAll,有关详细信息,请参阅github上的代码:

https://github.com/angular-ui/bootstrap/blob/master/src/modal/modal.js#L287

假设调用了一个autoLogout工厂和一个closeModals函数:

myApp.factory('autoLogout', ['$modal', '$modalStack' function($modal, $modalStack) {
    return {
        // all your current code
        closeModals: function(reason) {
            $modalStack.dismissAll(reason);
        }
    };
}]);