admin管理员组

文章数量:1294124

I'm using bootstrap 3 modal as a dialog confirmation in my AngularJS App. When i hide the modal and redirect the backdrop of the modal still remains.

$scope.delete = function () {   
  DataService.delete()
    .then(function () {
      $("#delete").modal("hide");
      $location.path("/");
    });
}

I have tried using the callback on hidden

$("#delete").on('hidden.bs.modal', function () { 
  $location.path("/");
}

But the delay in this is a lot.

Is there a better way to do this?

I'm using bootstrap 3 modal as a dialog confirmation in my AngularJS App. When i hide the modal and redirect the backdrop of the modal still remains.

$scope.delete = function () {   
  DataService.delete()
    .then(function () {
      $("#delete").modal("hide");
      $location.path("/");
    });
}

I have tried using the callback on hidden

$("#delete").on('hidden.bs.modal', function () { 
  $location.path("/");
}

But the delay in this is a lot.

Is there a better way to do this?

Share asked Oct 14, 2013 at 8:49 YashvitYashvit 2,4163 gold badges27 silver badges33 bronze badges 1
  • You can also take a look at the angular directives for bootstrap made by the angular-ui team angular-ui.github.io/bootstrap – zethus Commented Oct 14, 2013 at 19:45
Add a ment  | 

1 Answer 1

Reset to default 11

But the delay in this is a lot.

You are probably forgetting to call $scope.$apply(). Try changing it to the following (if the delay is the only problem) and the delay should be normal:

$("#delete").on('hidden.bs.modal', function () {
    $location.path("/");
    $scope.$apply();
});

All code that is called outside Angular (in this case from jQuery event) that interacts with Angular should call $apply().

本文标签: javascriptHide Bootstrap 3 Modal amp AngularJS redirect (locationpath)Stack Overflow