2015-04-20 4 views
3

У меня есть некритическая проблема с моим угловым приложением. У меня есть простое поле поиска в форме, и когда я нажимаю войти, чтобы представить, я получаю исключение в angular.js линии 12007 (AngularJS v1.4.0-rc.0):Угловой анимационный бегун не определен

TypeError: Cannot read property 'end' of undefined 
at VM2885 angular-animate.js:2209 
at forEach (angular.js:332) 
at closeChildAnimations (VM2885 angular-animate.js:2202) 
at queueAnimation (VM2885 angular-animate.js:2048) 
at Object.$$AnimateQueueProvider.$get.push (VM2885 angular-animate.js:1943) 
at Object.$AnimateProvider.$get.leave (angular.js:5017) 
at cleanupLastView (angular-route.js:913) 
at angular-route.js:942 
at publicLinkFn (angular.js:7199) 
at $get.boundTranscludeFn (angular.js:7345) 

Причиной этого функция closeChildAnimations в угловом animate.js:

function closeChildAnimations(element) { 
    var node = element[0]; 
    var children = node.querySelectorAll('[' + NG_ANIMATE_ATTR_NAME + ']'); 
    forEach(children, function(child) { 
    var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME)); 
    var animationDetails = activeAnimationsLookup.get(child); 
    switch (state) { 
     case RUNNING_STATE: 
      //HACK: Added check here as it breaks on form submit on the search page otherwise 
     if(animationDetails.runner !== undefined) 
      animationDetails.runner.end(); 
     /* falls through */ 
     case PRE_DIGEST_STATE: 
     if (animationDetails) { 
      activeAnimationsLookup.remove(child); 
     } 
     break; 
    } 
    }); 
} 

Я добавил, если заявление в качестве временного хака. Кажется, что у одного из элементов в activeAnimationsLookup нет элемента-бегуна.

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

+1

У меня была такая же проблема с переходом границы бутстрапа '.form-control' при переходе в другое состояние (я использую ui-router, но это не кажется релевантным). Я работаю над этим, вызывая '$ animate.enabled (false)' перед изменением состояний. Определенно стоит пометить команду Angular – Phil

+1

Это, кажется, проблема ~ https://github.com/angular/angular.js/issues/11658 – Phil

+0

@Phil: Блестяще, казалось бы, так. Благодаря! –

ответ

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