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