我在我的指令代码中打开一个模态:
var modalInstance = $modal.open({
templateUrl: "app/templates/modal-assign.html",
controller: "assignModalController",
resolve: {
"call": function() {
return $scope.call;
}
}
});
但我在assignModalController上验证了我需要关闭我的模态: AssignValidatorService.validateOpeningModal($ scope).then(function(validation){ if(!validation.isValid){ $ scope.handleCancel(validation.msg); } $ rootScope.setBusyIndicator(假); ,function(){ $ rootScope.setBusyIndicator(假); });
和我的处理取消:
$scope.handleCancel = function(message) {
$log.info(filename + " - handleCancel");
$modalInstance.dismiss(message);
};
因此,模态正确关闭,但屏幕滚动条消失了。
经过很长时间寻找答案后,我发现bootstrap在<body>
标签中添加了一个类模态打开。当这个模态关闭时,bootstrap假定从<body>
中删除该类。我检查了DOM,我在<body>
中看到了模态打开的类,我手动删除了,屏幕滚动条又重新出现了。
我试图通过handleCancel函数中的代码删除许多方法,如下所示:
$scope.handleCancel = function(message) {
$log.info(filename + " - handleCancel");
angular.element(document).find("body").removeClass();
$modalInstance.dismiss(message);
};
......但没有成功!
有什么想法吗?
答案 0 :(得分:0)
花了很长时间后,我得到了解决方案:
$scope.handleCancel = function(message) {
$log.info(filename + " - handleCancel");
$timeout(function(){
$modalInstance.dismiss(message);
}, 500);
};
添加/删除模态开放类的引导过程可能在中间,我触发了解除该模态,添加该类并且不删除。所以我推迟了解雇行动,现在一切正常。
:d
谢谢!