На событие onmouseover на одном из елементов компонента садится метод, который запускает $animate.addClass(
Ни какие переменные, которые есть в this самого контроллера не меняются, контроллер подключается как ControllerAs при этом на самом элементе класс не меняется и promise не отрабатывает.
let el = angular.element(elements[this.activeIndex]);
let elm = elements[this.activeIndex];
//el.addClass('active'); // это работает
let promise = $animate.addClass(elm, 'active');
console.log('element active 1', el.hasClass('active'));// показывает false
promise.then(()=>{
console.log('set element active 2', el.hasClass('active'));//это не отрабатывает
});
Смущает в документации вот эта фраза
Upon execution, the addClass operation will only be handled after the next digest
https://docs.angularjs.org/api/ng/service/$animate