Jun. 8th, 2015

orleanz: (main)
Говорит, это нормально, expected behaviour.

Я немного в недоумении. Прошу мнение зала.

Повторю еще раз описание проблемы. У вас есть анимация. У анимации есть then блок, где написано что надо делать после того, как она завершится. Вы в этом then блоке вызываете заново исходную анимацию, рекурсивно, чтобы они красиво так шли одна за другой. Одна за другой. Гуськом.

Потом вы делаете команду "выключить все нафиг анимации в Ангуляре". Но текущая анимация продолжает выполняться, и потом, когда она доходит до конца, then блок выстреливает. Матиас (человек который главный по анимациям в Ангуляре) говорит что ТАК НАДО. Ок, я не спорю, допустим, один раз он должен выстрелить. НО вопрос в том, что происходит дальше. В этом выстелившем блоке, мы вызываем опять анимацию (но она уже выключена глобально). Мое ожидание было, что она НЕ выполнится, и ее THEN блок тоже НЕ выполнится. Потому что, на минуточку, все анимации на данный момент выключены. Усё, всем спокойной ночи.

Но в реальной жизни, скипается только сама анимация, а ее Then блок выстреливает, приблизительно через 20-30 милисекунд. Получается бесконечный цикл. Сами анимации выключены, но их then блоки - нет. Матиас говорит, что это нормалёк, и чтобы не было бесконечного цикла, надо поставить в then блок оператор if который не будет вызывать новую анимацию, если условие if (скажем, мой некий флаг) не выполняется.

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

Короче, осталось у меня некое ощущение неясности. Настаивать на своей правоте не стал, впрочем.

Можете почитать на гитхабе, поиграться с Планкером...

https://github.com/angular/angular.js/issues/12039#issuecomment-110124049
Page generated Aug. 18th, 2025 08:02 pm
Powered by Dreamwidth Studios