aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ngAnimate/animate.js5
-rw-r--r--test/ngAnimate/animateSpec.js15
2 files changed, 18 insertions, 2 deletions
diff --git a/src/ngAnimate/animate.js b/src/ngAnimate/animate.js
index bf5e3af4..b1ea7d3d 100644
--- a/src/ngAnimate/animate.js
+++ b/src/ngAnimate/animate.js
@@ -828,7 +828,10 @@ angular.module('ngAnimate', ['ng'])
}
function fireDoneCallbackAsync() {
- doneCallback && async(doneCallback);
+ async(function() {
+ fireDOMCallback('close');
+ doneCallback && doneCallback();
+ });
}
//it is less complicated to use a flag than managing and cancelling
diff --git a/test/ngAnimate/animateSpec.js b/test/ngAnimate/animateSpec.js
index 6d9367bd..a5123929 100644
--- a/test/ngAnimate/animateSpec.js
+++ b/test/ngAnimate/animateSpec.js
@@ -1519,7 +1519,13 @@ describe("ngAnimate", function() {
steps.push(['after', data.className, data.event]);
});
- $animate.addClass(element, 'klass');
+ element.on('$animate:close', function(e, data) {
+ steps.push(['close', data.className, data.event]);
+ });
+
+ $animate.addClass(element, 'klass', function() {
+ steps.push(['done', 'klass', 'addClass']);
+ });
$timeout.flush(1);
@@ -1529,6 +1535,13 @@ describe("ngAnimate", function() {
$timeout.flush(1);
expect(steps.pop()).toEqual(['after', 'klass', 'addClass']);
+
+ browserTrigger(element,'transitionend', { timeStamp: Date.now() + 1000, elapsedTime: 1 });
+ $timeout.flush(1);
+
+ expect(steps.shift()).toEqual(['close', 'klass', 'addClass']);
+
+ expect(steps.shift()).toEqual(['done', 'klass', 'addClass']);
}));
it('should fire the DOM callbacks even if no animation is rendered',