Что случилось с ngAnimate и ui.bootstrap modal?

В этом примере

http://plnkr.co/edit/ETwexjK0HRu3b8WovoJq

angular.module('animateApp', [
  'ngAnimate', // adding this causes issue with modal backdrop
  'ui.bootstrap'
])

Когда вы закрываете модальный, фон не исчезнет. Если я прокомментирую зависимость "ngAnimate" (script.js строка 4), она работает нормально.

Я делаю что-то неправильно или это ошибка в ui.bootstrap при использовании с ngAnimate?

Ответ 1

Кажется, что это разрывное изменение где-то между Angular 1.3.15 и 1.4.0. По-видимому, что-то в ngAnimate изменилось, что мешает скрытию фона. Если вы отключите анимацию, фон скрывается хорошо:

$scope.openModal = function() {
    $modal.open({
      templateUrl: 'modal.html',
      controller: 'ModalCtrl',
      backdrop: true,
      animation: false
    });
  }

Если вы опуститесь до 1.3.15, нет проблемы: Plunker

Если вы проверяете страницу зависимостей для ui-bootstrap, это не выглядит так, что они до сих пор дошли до 1.4.0: https://david-dm.org/angular-ui/bootstrap#info=devDependencies

Возможно, стоит опубликовать вопрос или посмотреть, есть ли у кого-то еще.

Ответ 2

Так как это временная проблема, вы можете настроить модальную анимацию как ложную.

app.config(['$modalProvider', function($modalProvider)  {
  $modalProvider.options.animation = false;
}

Таким образом вам придется сделать это изменение один раз, и все модальности будут работать нормально.