1.在使用Angular Material对话框时,对话框显示以后,点击浏览器的返回按钮对话框不会消失的问题,解决方法就是监听$stateChangeStart事件,如果对话框已经显示则取消对话框并阻止下一步事件
.run(['$rootScope','$state','$stateParams','SessionStorage','ENV','$mddialog','$document',function ($rootScope,$state,$stateParams,SessionStorage,ENV,$mddialog,$document) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
$rootScope.$on("$stateChangeSuccess",function (event,toState,toParams,fromState,fromParams) {
// to be used for back button //won't work when page is reloaded.
$rootScope.prevIoUsstate_name = fromState.name;
$rootScope.prevIoUsstate_params = fromParams;
});
//back button function called from back button's ng-click="back()"
$rootScope.back = function () {
$state.go($rootScope.prevIoUsstate_name,$rootScope.prevIoUsstate_params);
};
$rootScope.$on('$stateChangeStart',function(event,fromParams,options){
if(angular.element($document[0].body).hasClass('md-dialog-is-showing')) {
$mddialog.cancel();
event.preventDefault();
}
});
}
]);