From 9483373c331343648e079420b3eb1f564d410ff2 Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Mon, 4 Nov 2013 10:28:30 -0800 Subject: fix(ngIf): destroy child scope when destroying DOM --- test/ng/directive/ngIfSpec.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/ng/directive/ngIfSpec.js b/test/ng/directive/ngIfSpec.js index 509cf26d..ce4de98c 100755 --- a/test/ng/directive/ngIfSpec.js +++ b/test/ng/directive/ngIfSpec.js @@ -36,7 +36,7 @@ describe('ngIf', function () { expect(element.children().length).toBe(0); }); - it('should create a new scope', function () { + it('should create a new scope every time the expression evaluates to true', function () { $scope.$apply('value = true'); element.append($compile( '
' @@ -45,6 +45,26 @@ describe('ngIf', function () { expect(element.children('div').length).toBe(1); }); + it('should destroy the child scope every time the expression evaluates to false', function() { + $scope.value = true; + element.append($compile( + '
' + )($scope)); + $scope.$apply(); + + var childScope = element.children().scope(); + var destroyed = false; + + childScope.$on('$destroy', function() { + destroyed = true; + }); + + $scope.value = false; + $scope.$apply(); + + expect(destroyed).toBe(true); + }); + it('should play nice with other elements beside it', function () { $scope.values = [1, 2, 3, 4]; element.append($compile( -- cgit v1.2.3