From 5fdab52dd7c269f99839f4fa6b5854d9548269fa Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Wed, 21 Mar 2012 15:16:41 -0700 Subject: feat(jqLite): make injector() and scope() work with the document object For typical app that has ng-app directive on the html element, we now can do: angular.element(document).injector() or .injector() angular.element(document).scope() or .scope() instead of: angular.element(document.getElementsByTagName('html')[0]).injector() ... --- test/jqLiteSpec.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'test') diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index fbe6edcb..afbb6836 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -107,6 +107,20 @@ describe('jqLite', function() { expect(deepChild.inheritedData('myData')).toBeFalsy(); dealoc(element); }); + + + it('should work with the child html element instead if the current element is the document obj', + function() { + var item = {}, + doc = jqLite(document), + html = doc.find('html'); + + html.data('item', item); + expect(doc.inheritedData('item')).toBe(item); + expect(html.inheritedData('item')).toBe(item); + dealoc(doc); + } + ); }); @@ -118,6 +132,18 @@ describe('jqLite', function() { dealoc(element); }); + it('should retrieve scope attached to the html element if its requested on the document', + function() { + var doc = jqLite(document), + html = doc.find('html'), + scope = {}; + + html.data('$scope', scope); + + expect(doc.scope()).toBe(scope); + expect(html.scope()).toBe(scope); + dealoc(doc); + }); it('should walk up the dom to find scope', function() { var element = jqLite('
deep deep