2016-11-15 4 views
1

Я создаю небольшое веб-приложение в Angular, которое включает в себя форму с кнопкой «сохранить изменения».Угловой: втекать/выходить без использования модуля NgAnimate

Я бы хотел показать зеленый галочку, означающий правильное обновление данных, с быстрой анимацией затухания/затухания.

Я не думаю, что стоит добавить 20-й модуль Kb только для этой анимации (мне не нужно анимировать какую-либо другую часть приложения).

Есть ли альтернативный способ выполнения простой анимации, такой как это без включения NgAnimate, который предпочтительно соответствует «Угловому пути»?

+0

http://plnkr.co/edit/vfrmmuGjsIfsdhnLj87O?p=preview? Что произошло из http://stackoverflow.com/questions/29323044/doing-animation-with-ng-show-without-nganimate – dstarh

+0

, но ... этот код включает в себя angular-animate.js? Если я удалю скрипт, код не будет работать. – Sebastianb

+0

Doh я пропустил это, ответ заявил, что он опустил ng-animate – dstarh

ответ

1

Да, есть способ - вы можете использовать анимацию CSS, $timeout и ng-class. Вот example.

В основном вы переключить флаг в родительском контроллере

ctrl.showCheckmark = function() { 
    ctrl.isShowingCheckmark = true; 

    $timeout(function() { 
     ctrl.isShowingCheckmark = false; 
    }, 2000); 
} 

и наблюдать изменения в галочкой компоненте.

Когда флаг изменения, которые вы установите видимость и исчезающие в флаги:

$ctrl.show = function() { 
    $ctrl.isShowing = true; 

    $timeout(function() { 
     $ctrl.fadeIn = true; 
     $ctrl.fadeOut = false; 
    }); 
}; 

с помощью $timeout ждать предыдущий $digest, чтобы закончить и сделать ng-if="$ctrl.isShowing".

Все, что осталось, это написание некоторых анимаций CSS, и это очень просто.

+0

В итоге я использовал вариант вашего ответа, но он сводится к использованию функции тайм-аута, классов и css. Спасибо! – Sebastianb

Смежные вопросы