Bootstrap angular-ui 模式使滚动条消失
Bootstrap modal on angular-ui makes scrollbar vanish
我正在我的指令代码中打开一个模式,如下所示:
var modalInstance = $modal.open({
templateUrl: "app/templates/modal-assign.html",
controller: "assignModalController",
resolve: {
"call": function() {
return $scope.call;
}
}
});
但是我对我的 assignModalController 进行了验证,我需要关闭我的模式:
AssignValidatorService.validateOpeningModal($scope).then(函数(验证){
如果(!validation.isValid){
$scope.handleCancel(validation.msg);
}
$rootScope.setBusyIndicator(假);
}, 功能() {
$rootScope.setBusyIndicator(假);
});
和我的 handleCancel:
$scope.handleCancel = function(message) {
$log.info(filename + " - handleCancel");
$modalInstance.dismiss(message);
};
所以,模态窗口正常关闭,但屏幕滚动条消失了。
经过长时间寻找答案,我发现 bootstrap 在 <body>
标签中添加一个 class modal-open。当此模式关闭时,bootstrap 应该从 <body>
中删除 class。我检查了 DOM 并在 <body>
中看到了模态打开 class,我手动删除并重新出现了屏幕滚动条。
我尝试通过 handleCancel 函数中的代码以多种方式删除 class,如下所示:
$scope.handleCancel = function(message) {
$log.info(filename + " - handleCancel");
angular.element(document).find("body").removeClass();
$modalInstance.dismiss(message);
};
...但没有成功!
有什么想法吗?
花了很长时间后我得到了我的解决方案:
$scope.handleCancel = function(message) {
$log.info(filename + " - handleCancel");
$timeout(function(){
$modalInstance.dismiss(message);
}, 500);
};
可能 bootstrap 到 add/remove 模态打开 class 的过程在中间,我触发关闭该模态,并添加 class 并且没有'删除。所以我推迟了解雇行动,现在一切正常
:D
谢谢!
我正在我的指令代码中打开一个模式,如下所示:
var modalInstance = $modal.open({
templateUrl: "app/templates/modal-assign.html",
controller: "assignModalController",
resolve: {
"call": function() {
return $scope.call;
}
}
});
但是我对我的 assignModalController 进行了验证,我需要关闭我的模式: AssignValidatorService.validateOpeningModal($scope).then(函数(验证){ 如果(!validation.isValid){ $scope.handleCancel(validation.msg); } $rootScope.setBusyIndicator(假); }, 功能() { $rootScope.setBusyIndicator(假); });
和我的 handleCancel:
$scope.handleCancel = function(message) {
$log.info(filename + " - handleCancel");
$modalInstance.dismiss(message);
};
所以,模态窗口正常关闭,但屏幕滚动条消失了。
经过长时间寻找答案,我发现 bootstrap 在 <body>
标签中添加一个 class modal-open。当此模式关闭时,bootstrap 应该从 <body>
中删除 class。我检查了 DOM 并在 <body>
中看到了模态打开 class,我手动删除并重新出现了屏幕滚动条。
我尝试通过 handleCancel 函数中的代码以多种方式删除 class,如下所示:
$scope.handleCancel = function(message) {
$log.info(filename + " - handleCancel");
angular.element(document).find("body").removeClass();
$modalInstance.dismiss(message);
};
...但没有成功!
有什么想法吗?
花了很长时间后我得到了我的解决方案:
$scope.handleCancel = function(message) {
$log.info(filename + " - handleCancel");
$timeout(function(){
$modalInstance.dismiss(message);
}, 500);
};
可能 bootstrap 到 add/remove 模态打开 class 的过程在中间,我触发关闭该模态,并添加 class 并且没有'删除。所以我推迟了解雇行动,现在一切正常
:D
谢谢!