diff options
| author | Matias Niemelä | 2013-08-17 11:39:28 -0400 | 
|---|---|---|
| committer | Misko Hevery | 2013-08-19 14:55:19 -0700 | 
| commit | 6749fef227a5a633b4858c9a2d6f630078493dbe (patch) | |
| tree | 47695e779445ccf628721f2974e8b9b0ec33b6ee | |
| parent | 63e9ea18f8da6bdd9c5f91ca75ae08f662f2228d (diff) | |
| download | angular.js-6749fef227a5a633b4858c9a2d6f630078493dbe.tar.bz2 | |
revert(ngInclude): remove ngInclude manual transclusion system
| -rw-r--r-- | src/ng/directive/ngInclude.js | 35 | ||||
| -rw-r--r-- | test/ng/directive/ngIncludeSpec.js | 25 | 
2 files changed, 16 insertions, 44 deletions
| diff --git a/src/ng/directive/ngInclude.js b/src/ng/directive/ngInclude.js index e4484e81..0f1f245c 100644 --- a/src/ng/directive/ngInclude.js +++ b/src/ng/directive/ngInclude.js @@ -149,23 +149,18 @@   * @description   * Emitted every time the ngInclude content is reloaded.   */ -var NG_INCLUDE_PRIORITY = 500;  var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$compile', '$animate', '$sce',                    function($http,   $templateCache,   $anchorScroll,   $compile,   $animate,   $sce) {    return {      restrict: 'ECA',      terminal: true, -    priority: NG_INCLUDE_PRIORITY, -    compile: function(element, attr) { +    transclude: 'element', +    compile: function(element, attr, transclusion) {        var srcExp = attr.ngInclude || attr.src,            onloadExp = attr.onload || '',            autoScrollExp = attr.autoscroll; -      element.html(''); -      var anchor = jqLite(document.createComment(' ngInclude: ' + srcExp + ' ')); -      element.replaceWith(anchor); - -      return function(scope) { +      return function(scope, $element) {          var changeCounter = 0,              currentScope,              currentElement; @@ -189,21 +184,23 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$compile'                if (thisChangeId !== changeCounter) return;                var newScope = scope.$new(); -              cleanupLastIncludeContent(); +              transclusion(newScope, function(clone) { +                cleanupLastIncludeContent(); -              currentScope = newScope; -              currentElement = element.clone(); -              currentElement.html(response); -              $animate.enter(currentElement, null, anchor); +                currentScope = newScope; +                currentElement = clone; -              $compile(currentElement, false, NG_INCLUDE_PRIORITY - 1)(currentScope); +                currentElement.html(response); +                $animate.enter(currentElement, null, $element); +                $compile(currentElement.contents())(currentScope); -              if (isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))) { -                $anchorScroll(); -              } +                if (isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))) { +                  $anchorScroll(); +                } -              currentScope.$emit('$includeContentLoaded'); -              scope.$eval(onloadExp); +                currentScope.$emit('$includeContentLoaded'); +                scope.$eval(onloadExp); +              });              }).error(function() {                if (thisChangeId === changeCounter) cleanupLastIncludeContent();              }); diff --git a/test/ng/directive/ngIncludeSpec.js b/test/ng/directive/ngIncludeSpec.js index b712c130..f1bfbba2 100644 --- a/test/ng/directive/ngIncludeSpec.js +++ b/test/ng/directive/ngIncludeSpec.js @@ -280,31 +280,6 @@ describe('ngInclude', function() {      dealoc(element);    })); -  it('should compile only the inner content once', function() { -    var log = []; - -    module(function($compileProvider) { -      $compileProvider.directive('compileLog', function() { -        return { -          compile: function() { -            log.push('compile'); -          } -        }; -      }); -    }); - -    inject(function($compile, $rootScope, $templateCache) { -      $templateCache.put('tpl.html', [200, '<div compile-log>123</div>', {}]); -      element = $compile('<div><div ng-include="exp"></div></div>')($rootScope); - -      $rootScope.exp = 'tpl.html'; -      $rootScope.$digest(); - -      expect(element.text()).toBe('123'); -      expect(log).toEqual(['compile']); -    }); -  }); -    describe('autoscoll', function() {      var autoScrollSpy; | 
