diff options
| author | Misko Hevery | 2012-02-10 21:35:02 -0800 | 
|---|---|---|
| committer | Misko Hevery | 2012-02-21 22:46:00 -0800 | 
| commit | cb10ccc44fa78b82c80afa1cb5dac2c34fdf24b7 (patch) | |
| tree | 0bbd21a88a43ccaf1f81186b2ecdbcc588870f0b | |
| parent | 4a051efb89cf33e30d56f1227d1f6084ead4cd42 (diff) | |
| download | angular.js-cb10ccc44fa78b82c80afa1cb5dac2c34fdf24b7.tar.bz2 | |
feat($compile): mark scope creation with ng-scope class
| -rw-r--r-- | src/service/compiler.js | 3 | ||||
| -rw-r--r-- | test/directivesSpec.js | 6 | ||||
| -rw-r--r-- | test/service/compilerSpec.js | 9 | 
3 files changed, 11 insertions, 7 deletions
diff --git a/src/service/compiler.js b/src/service/compiler.js index b73cc690..ed453749 100644 --- a/src/service/compiler.js +++ b/src/service/compiler.js @@ -195,7 +195,7 @@ function $CompileProvider($provide) {          var element = cloneConnectFn            ? JQLitePrototype.clone.call(templateElement) // IMPORTANT!!!            : templateElement; -        element.data('$scope', scope); +        element.data('$scope', scope).addClass('ng-scope');          if (cloneConnectFn) cloneConnectFn(element, scope);          if (linkingFn) linkingFn(scope, element, element);          return element; @@ -371,6 +371,7 @@ function $CompileProvider($provide) {          if (directive.scope) {            assertNoDuplicate('new scope', newScopeDirective, directive, element); +          element.addClass('ng-scope');            newScopeDirective = directive;          } diff --git a/test/directivesSpec.js b/test/directivesSpec.js index 45f1cffc..88e70b50 100644 --- a/test/directivesSpec.js +++ b/test/directivesSpec.js @@ -261,7 +261,7 @@ describe("directive", function() {        $rootScope.$digest();        $rootScope.dynCls = 'foo';        $rootScope.$digest(); -      expect(element[0].className).toBe('ui-panel ui-selected foo'); +      expect(element[0].className).toBe('ui-panel ui-selected ng-scope foo');      })); @@ -269,7 +269,7 @@ describe("directive", function() {        element = $compile('<div class="panel bar" ng:class="dynCls"></div>')($rootScope);        $rootScope.dynCls = 'panel';        $rootScope.$digest(); -      expect(element[0].className).toBe('panel bar'); +      expect(element[0].className).toBe('panel bar ng-scope');      })); @@ -279,7 +279,7 @@ describe("directive", function() {        $rootScope.$digest();        $rootScope.dynCls = 'window';        $rootScope.$digest(); -      expect(element[0].className).toBe('bar window'); +      expect(element[0].className).toBe('bar ng-scope window');      })); diff --git a/test/service/compilerSpec.js b/test/service/compilerSpec.js index 02cdcefe..4de4641a 100644 --- a/test/service/compilerSpec.js +++ b/test/service/compilerSpec.js @@ -189,19 +189,21 @@ describe('$compile', function() {                toEqual('<div factory-error linking-error template-error>');            expect($exceptionHandler.errors[2][0]).toEqual('LinkingError');            expect(ie($exceptionHandler.errors[2][1])). -              toEqual('<div factory-error linking-error template-error>'); +              toEqual('<div class="ng-scope" factory-error linking-error template-error>');            // crazy stuff to make IE happy            function ie(text) {              var list = [], -                parts; +                parts, elementName;              parts = lowercase(text).                  replace('<', '').                  replace('>', '').                  split(' '); +            elementName = parts.shift();              parts.sort(); +            parts.unshift(elementName);              forEach(parts, function(value, key){                if (value.substring(0,3) == 'ng-') {                } else { @@ -888,6 +890,7 @@ describe('$compile', function() {          it('should allow creation of new scopes', inject(function($rootScope, $compile, log) {            element = $compile('<div><span scope><a log></a></span></div>')($rootScope);            expect(log).toEqual('LOG; log-002-001; 002'); +          expect(element.find('span').hasClass('ng-scope')).toBe(true);          })); @@ -913,7 +916,7 @@ describe('$compile', function() {              expect(function(){                $compile('<div class="scope-a; scope-b"></div>');              }).toThrow('Multiple directives [scopeA, scopeB] asking for new scope on: ' + -                '<' + (msie < 9 ? 'DIV' : 'div') + ' class="scope-a; scope-b">'); +                '<' + (msie < 9 ? 'DIV' : 'div') + ' class="scope-a; scope-b ng-scope">');            }));  | 
