diff --git a/src/ng/directive/ngRepeat.js b/src/ng/directive/ngRepeat.js index a7d55895..0fd53c2f 100644 --- a/src/ng/directive/ngRepeat.js +++ b/src/ng/directive/ngRepeat.js @@ -212,7 +212,7 @@ var ngRepeatDirective = ['$parse', '$animator', function($parse, $animator) { nextBlockOrder = []; - if (isArray(collection)) { + if (isArrayLike(collection)) { collectionKeys = collection; } else { // if object, extract keys, sort them and use to determine order of iteration over obj props diff --git a/test/ng/directive/ngRepeatSpec.js b/test/ng/directive/ngRepeatSpec.js index fbd1a2dc..ac1ce7e7 100644 --- a/test/ng/directive/ngRepeatSpec.js +++ b/test/ng/directive/ngRepeatSpec.js @@ -55,6 +55,26 @@ describe('ngRepeat', function() { }); + it('should iterate over an array-like object', function() { + element = $compile( + '
" + + "a" + + "b" + + "c" + + "
"; + + var htmlCollection = document.getElementsByTagName('a') + scope.items = htmlCollection; + scope.$digest(); + expect(element.find('li').length).toEqual(3); + expect(element.text()).toEqual('x;y;x;'); + }); + + it('should iterate over on object/map', function() { element = $compile( '