From b7e4e92014a5fe7a2d8c896703498090d88793ce Mon Sep 17 00:00:00 2001 From: Matias Niemelä Date: Fri, 14 Feb 2014 00:25:10 -0500 Subject: chore(jqLite): expose the _data lookup function to angular.element --- src/jqLite.js | 8 ++++++++ test/jqLiteSpec.js | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/jqLite.js b/src/jqLite.js index 6749b26e..6056730a 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -107,6 +107,14 @@ var jqCache = JQLite.cache = {}, ? function(element, type, fn) {element.removeEventListener(type, fn, false); } : function(element, type, fn) {element.detachEvent('on' + type, fn); }); +/* + * !!! This is an undocumented "private" function !!! + */ +var jqData = JQLite._data = function(node) { + //jQuery always returns an object on cache miss + return this.cache[node[this.expando]] || {}; +}; + function jqNextId() { return ++jqId; } diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index a98e94b9..82db95b6 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -97,6 +97,23 @@ describe('jqLite', function() { }); }); + describe('_data', function() { + it('should provide access to the data present on the element', function() { + var element = jqLite('foo'); + var data = ['value']; + element.data('val', data); + expect(angular.element._data(element[0]).data.val).toBe(data); + dealoc(element); + }); + + it('should provide access to the events present on the element', function() { + var element = jqLite('foo'); + expect(angular.element._data(element[0]).events).toBeUndefined(); + + element.on('click', function() { }); + expect(angular.element._data(element[0]).events.click).toBeDefined(); + }); + }); describe('inheritedData', function() { -- cgit v1.2.3