diff options
-rw-r--r-- | src/ng/compile.js | 6 | ||||
-rwxr-xr-x | test/ng/compileSpec.js | 13 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/ng/compile.js b/src/ng/compile.js index d231fb40..ba6e6306 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -591,8 +591,10 @@ function $CompileProvider($provide) { if (!node) { throw ngError(51, "Unterminated attribute, found '{0}' but no matching '{1}' found.", attrStart, attrEnd); } - if (node.hasAttribute(attrStart)) depth++; - if (node.hasAttribute(attrEnd)) depth--; + if (node.nodeType == 1 /** Element **/) { + if (node.hasAttribute(attrStart)) depth++; + if (node.hasAttribute(attrEnd)) depth--; + } nodes.push(node); node = node.nextSibling; } while (depth > 0); diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 95b2ab72..99c0a6ad 100755 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -2747,6 +2747,19 @@ describe('$compile', function() { })); + it('should support grouping over text nodes', inject(function($compile, $rootScope) { + $rootScope.show = false; + element = $compile( + '<div>' + + '<span ng-repeat-start="i in [1,2]">{{i}}A</span>' + + ':' + // Important: proves that we can iterate over non-elements + '<span ng-repeat-end>{{i}}B;</span>' + + '</div>')($rootScope); + $rootScope.$digest(); + expect(element.text()).toEqual('1A:1B;2A:2B;'); + })); + + it('should group on $root compile function', inject(function($compile, $rootScope) { $rootScope.show = false; element = $compile( |