У меня есть модуль AngularJS:
angular.module("app", ['ui.bootstrap', 'ngRoute', 'ngGridPanel']).config(function($routeProvider) {
Как вы можете видеть, он включает ngGridPanel
через внедрение зависимостей.
Вот определение модуля/директивы ngGridPanel
:
angular.module('ngGridPanel', ['ngAnimate']).directive('gridPanel', ['$animate', '$compile', '$window', '$document', '$timeout', function ($animate, $compile, $window, $document, $timeout) {
Как видите, это относится к ngAnimate
.
Проблема, с которой я сталкиваюсь, заключается в том, что как только я ввожу ngGridPanel
в свое приложение, каждый элемент в моем приложении внезапно пытается анимироваться.
Теперь, как описано в этом выпуске Angular.js на GitHub, ngAnimate
предполагает, что все должно быть анимированным. Как только я понял, что это ожидаемое поведение, я понял, что я никогда не включал ngAnimate в модуль своего приложения.
Так почему же это повлияет на все мое приложение? Разве это не должно действовать только в директиве, принадлежащей модулю ngGridPanel
?
Так как же ngAnimate
влияет на область действия родительского модуля? Это нормально?
Примечание: на данный момент я вообще не использовал директиву ngGridPanel
. Я просто ввел его в свое приложение.
Примечание 2. После того, как я реализовал фильтр имени класса ($animateProvider.classNameFilter(/enable-animate/);
) в своем приложении, анимация остановилась для всех моих элементов, но продолжала работать в директиве ngGridPanel
без необходимости добавлять класс enable-animate
куда угодно. эм>.