angular-ui上的Bootstrap模态使滚动条消失

时间:2016-04-12 01:32:32

标签: angularjs twitter-bootstrap angular-ui

我在我的指令代码中打开一个模态:

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.setBusyIndi​​cator(假);     ,function(){       $ rootScope.setBusyIndi​​cator(假);     });

和我的处理取消:

$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);
};

......但没有成功!

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

花了很长时间后,我得到了解决方案:

$scope.handleCancel = function(message) {
  $log.info(filename + " - handleCancel");
  $timeout(function(){
      $modalInstance.dismiss(message);
  }, 500);    
};

添加/删除模态开放类的引导过程可能在中间,我触发了解除该模态,添加该类并且不删除。所以我推迟了解雇行动,现在一切正常。

:d

谢谢!