From 8a96f317e594a5096d4fa56ceae4c685eec8ac8b Mon Sep 17 00:00:00 2001 From: Caitlin Potter Date: Mon, 10 Mar 2014 19:32:09 -0400 Subject: fix(jqLite): traverse `host` property for DocumentFragment in inheritedData() If dealing with a document fragment node with a host element, and no parent, use the host element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM to lookup parent controllers. Closes #6637 --- src/jqLite.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/jqLite.js b/src/jqLite.js index ba613f21..738f47a9 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -364,11 +364,15 @@ function jqLiteInheritedData(element, name, value) { var names = isArray(name) ? name : [name]; while (element.length) { - + var node = element[0]; for (var i = 0, ii = names.length; i < ii; i++) { if ((value = element.data(names[i])) !== undefined) return value; } - element = element.parent(); + + // If dealing with a document fragment node with a host element, and no parent, use the host + // element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM + // to lookup parent controllers. + element = jqLite(node.parentNode || (node.nodeType === 11 && node.host)); } } -- cgit v1.2.3