2016-04-12 50 views
-1

我在我的指令代码一样,打开一个模式:引导模式,使滚动条消失

var modalInstance = $modal.open({ 
     templateUrl: "app/templates/modal-assign.html", 
     controller: "assignModalController", 
     resolve: { 
     "call": function() { 
      return $scope.call; 
     } 
     } 
    }); 

但我有我的assignModalController验证,我需要关闭我的模式: AssignValidatorService .validateOpeningModal($范围)。然后(函数(验证){ 如果(validation.isValid){$ scope.handleCancel(validation.msg!);} $ rootScope.setBusyIndi​​cator(假);} ,功能( ){ $ rootScope.setBusyIndi​​cator(false); });

和我handleCancel:

$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

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

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

大概引导过程中添加/删除模式,公开课是在中间,我引发解雇情态,并称阶级和没有按不要删除。所以,我认为推迟解雇行动,现在

一切正常:d

谢谢!