diff options
Diffstat (limited to 'src/ng/directive/ngIf.js')
| -rw-r--r-- | src/ng/directive/ngIf.js | 17 | 
1 files changed, 11 insertions, 6 deletions
| diff --git a/src/ng/directive/ngIf.js b/src/ng/directive/ngIf.js index 000fba82..a31015b2 100644 --- a/src/ng/directive/ngIf.js +++ b/src/ng/directive/ngIf.js @@ -84,7 +84,7 @@ var ngIfDirective = ['$animate', function($animate) {      restrict: 'A',      $$tlb: true,      link: function ($scope, $element, $attr, ctrl, $transclude) { -        var block, childScope; +        var block, childScope, previousElements;          $scope.$watch($attr.ngIf, function ngIfWatchAction(value) {            if (toBoolean(value)) { @@ -102,14 +102,19 @@ var ngIfDirective = ['$animate', function($animate) {                });              }            } else { - -            if (childScope) { +            if(previousElements) { +              previousElements.remove(); +              previousElements = null; +            } +            if(childScope) {                childScope.$destroy();                childScope = null;              } - -            if (block) { -              $animate.leave(getBlockElements(block.clone)); +            if(block) { +              previousElements = getBlockElements(block.clone); +              $animate.leave(previousElements, function() { +                previousElements = null; +              });                block = null;              }            } | 
