diff --git a/src/ng/animate.js b/src/ng/animate.js index ba7dc4b56720..1bcbd1a24a0d 100644 --- a/src/ng/animate.js +++ b/src/ng/animate.js @@ -424,6 +424,8 @@ var $AnimateProvider = ['$provide', function($provide) { */ enter: function(element, parent, after, options) { assertNoCallback(options); + parent = parent && jqLite(parent); + after = after && jqLite(after); parent = parent || after.parent(); domInsert(element, parent, after); return $$animateQueue.push(element, 'enter', options); @@ -449,6 +451,8 @@ var $AnimateProvider = ['$provide', function($provide) { */ move: function(element, parent, after, options) { assertNoCallback(options); + parent = parent && jqLite(parent); + after = after && jqLite(after); parent = parent || after.parent(); domInsert(element, parent, after); return $$animateQueue.push(element, 'move', options); diff --git a/test/ng/animateSpec.js b/test/ng/animateSpec.js index 0211bb44ae17..543806bfd07f 100644 --- a/test/ng/animateSpec.js +++ b/test/ng/animateSpec.js @@ -216,6 +216,32 @@ describe("$animate", function() { expect(element).toHaveClass('ng-hide'); })); + + they("should accept an unwrapped \"parent\" element for the $prop event", + ['enter', 'move'], function(method) { + + inject(function($document, $animate, $rootElement) { + var element = jqLite('
'); + var parent = $document[0].createElement('div'); + $rootElement.append(parent); + + $animate[method](element, parent); + expect(element[0].parentNode).toBe(parent); + }); + }); + + they("should accept an unwrapped \"after\" element for the $prop event", + ['enter', 'move'], function(method) { + + inject(function($document, $animate, $rootElement) { + var element = jqLite('
'); + var after = $document[0].createElement('div'); + $rootElement.append(after); + + $animate[method](element, null, after); + expect(element[0].previousSibling).toBe(after); + }); + }); }); describe('CSS class DOM manipulation', function() {