Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 95d8999

Browse files
committed
fix(compile): Fix for extended remove function
Fix for the extended `remove` function that is used during `multi-element` transclusion to also remove the element from its parent when there is one
1 parent 130fd03 commit 95d8999

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

src/ng/compile.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1212,7 +1212,7 @@ function $CompileProvider($provide) {
12121212

12131213

12141214
function removeElement($rootElement, element) {
1215-
var i, ii;
1215+
var i, ii, parent = element.parentNode;
12161216

12171217
if ($rootElement) {
12181218
for(i = 0, ii = $rootElement.length; i < ii; i++) {
@@ -1222,6 +1222,9 @@ function $CompileProvider($provide) {
12221222
}
12231223
}
12241224
}
1225+
if (parent) {
1226+
parent.removeChild(element);
1227+
}
12251228
}
12261229
}];
12271230
}

test/ng/directive/ngRepeatSpec.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -434,34 +434,34 @@ describe('ngRepeat', function() {
434434
element = $compile(
435435
'<ul>' +
436436
'<li ng-repeat-start ng-repeat="subgroup in groups">' +
437-
'<div ng-repeat-start ng-repeat="group in subgroup">{{group}}|</div>' +
437+
'A<div ng-repeat-start ng-repeat="group in subgroup">{{group}}|</div>' +
438438
'<div ng-repeat-end>{{group}}</div>X' +
439439
'</li>' +
440440
'<li ng-repeat-end>' +
441-
'<div ng-repeat-start ng-repeat="group in subgroup">{{group}}|</div>' +
441+
'B<div ng-repeat-start ng-repeat="group in subgroup">{{group}}|</div>' +
442442
'<div ng-repeat-end>{{group}}</div>Y' +
443-
'</li>' +
443+
'</li>Z' +
444444
'</ul>')(scope);
445445
scope.groups = [['a', 'b'], ['c','d']];
446446
scope.$digest();
447447

448-
expect(element.text()).toEqual('a|ab|bXa|ab|bYc|cd|dXc|cd|dY');
448+
expect(element.text()).toEqual('Aa|ab|bXBa|ab|bYAc|cd|dXBc|cd|dYZ');
449449
});
450450

451451

452452
it('should repeat over nested repeats at the same level', function() {
453453
element = $compile(
454454
'<dl>' +
455-
'<dt ng-repeat="item1 in array" ng-repeat-start>{{item1}}|</dt>' +
456-
'<dt ng-repeat="item2 in array2" ng-repeat-start>{{item2}}</dt>' +
457-
'<dt ng-repeat-end>X</dt>' +
458-
'<dt ng-repeat-end>Y</dt>' +
455+
'A<dt ng-repeat="item1 in array" ng-repeat-start>{{item1}}|</dt>' +
456+
'B<dt ng-repeat="item2 in array2" ng-repeat-start>{{item2}}</dt>' +
457+
'<dt ng-repeat-end>X</dt>Z' +
458+
'<dt ng-repeat-end>Y</dt>W' +
459459
'</dl>')(scope);
460460
scope.array = ['a', 'b'];
461461
scope.array2 = ['d', 'e'];
462462
scope.$digest();
463463

464-
expect(element.text()).toEqual('a|dXeXYb|dXeXY');
464+
expect(element.text()).toEqual('Aa|BdXeXZYb|BdXeXZYW');
465465
});
466466

467467

0 commit comments

Comments
 (0)