diff options
| author | Grzegorz Lachowski | 2013-10-21 18:50:48 +0200 |
|---|---|---|
| committer | Matias Niemelä | 2013-10-22 15:09:52 -0400 |
| commit | b9557b0a86206d938a738ea470736d011dff7e1a (patch) | |
| tree | 65037b79f62cd09653b048faf8327d7516a06929 | |
| parent | 280e33d22a744b494395abdca639fa54eb6bb779 (diff) | |
| download | angular.js-b9557b0a86206d938a738ea470736d011dff7e1a.tar.bz2 | |
fix(ngAnimate): fix cancelChildAnimations throwing exception
fix ngAnimate throwing exception in cancelChildAnimations on deletion of
element (ngAnimate's leave decorator) of repeated element when using
ng-include on this element.
Closes #4548
| -rw-r--r-- | src/ngAnimate/animate.js | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/ngAnimate/animate.js b/src/ngAnimate/animate.js index 88a72073..a58e02d2 100644 --- a/src/ngAnimate/animate.js +++ b/src/ngAnimate/animate.js @@ -199,6 +199,7 @@ angular.module('ngAnimate', ['ng']) var forEach = angular.forEach; var selectors = $animateProvider.$$selectors; + var ELEMENT_NODE = 1; var NG_ANIMATE_STATE = '$$ngAnimateState'; var NG_ANIMATE_CLASS_NAME = 'ng-animate'; var rootAnimateState = {running:true}; @@ -583,7 +584,12 @@ angular.module('ngAnimate', ['ng']) } function cancelChildAnimations(element) { - angular.forEach(element[0].querySelectorAll('.' + NG_ANIMATE_CLASS_NAME), function(element) { + var node = element[0]; + if(node.nodeType != ELEMENT_NODE) { + return; + } + + angular.forEach(node.querySelectorAll('.' + NG_ANIMATE_CLASS_NAME), function(element) { element = angular.element(element); var data = element.data(NG_ANIMATE_STATE); if(data) { @@ -639,8 +645,7 @@ angular.module('ngAnimate', ['ng']) var durationKey = 'Duration', propertyKey = 'Property', delayKey = 'Delay', - animationIterationCountKey = 'IterationCount', - ELEMENT_NODE = 1; + animationIterationCountKey = 'IterationCount'; var NG_ANIMATE_PARENT_KEY = '$ngAnimateKey'; var lookupCache = {}; |
