Yashvit
Yashvit

Reputation: 2416

Hide Bootstrap 3 Modal & AngularJS redirect ($location.path)

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?

Upvotes: 3

Views: 4887

Answers (1)

Nikos Paraskevopoulos
Nikos Paraskevopoulos

Reputation: 40308

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().

Upvotes: 11

Related Questions