Подтвердить что ты не робот

Быстрый выход и вводят несколько элементов в angular ng-if animation

в этом документе есть пример анимации ng-if: https://docs.angularjs.org/api/ng/directive/ngIf если вы быстро и многократно нажмете этот флажок, вы обнаружите, что отобразится более одного элемента, я не знаю, как его избежать.

4b9b3361

Ответ 1

Это происходит потому, что ngIf ведет себя иначе, чем ngShow. ngShow просто добавляет стиль display: none к элементу, который должен быть скрыт, а ngIf выполняет следующие действия:

Директива ngIf удаляет или воссоздает часть дерева DOM на основе {выражения}. Если выражение, назначенное ngIf, оценивает к ложному значению, тогда элемент удаляется из DOM, в противном случае клон элемента повторно вставлен в DOM.

Итак, если анимация занимает немного времени, в DOM будет больше одного элемента.

В примере Olivvv, если вы просто измените задержку .animate-if.ng-enter, .animate-if.ng-leave на 0.001s, вы увидите, что вы не можете получить более одного элемента.

Здесь вы видите, что это разветвленная версия официальной документации AngularJS. http://plnkr.co/edit/ok7nwOIRpR1TYYRkBRXj?p=preview

Я только изменил его задержку от 0.5s до 0.001s