Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

fix(jqLite): traverse host property for DocumentFragment in inheritedData() #6637

Closed
wants to merge 1 commit into from

Conversation

caitp
Copy link
Contributor

@caitp caitp commented Mar 10, 2014

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.

This is something which would be well-suited for 1.2.x as well as a 1.3 beta, in my opinion, as use of the shadowDOM may become more commonplace. This solution works for both the Polymer polyfill as well as the native implementation in Canary

(might technically be a feature, but it feels like "fixing things to work with modern web", really)

@caitp
Copy link
Contributor Author

caitp commented Mar 11, 2014

Somewhat related to this, batarang doesn't seem interested in piercing shadow barriers either, it would be good to fix that

// to lookup parent controllers.
var parent = element.parent();
if (!parent.length) {
if (element[0].parentNode) parent = jqLite(element[0].parentNode);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you expand this to

if (condition) {
  fooo
} if else (condition2) {
  baaar
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we keep local reference to element[0] instead of uwrapping it 4 times in this code?

@caitp caitp added this to the 1.3.0-beta.2 milestone Mar 13, 2014
…edData()

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.
@tbosch tbosch modified the milestones: 1.3.0-beta.3, 1.3.0-beta.2 Mar 14, 2014
caitp added a commit to caitp/angularjs-batarang that referenced this pull request Mar 15, 2014
…Fragments

Sort of related to angular/angular.js#6637 --- Currently,
jqLite#inheritedData() will not find data if it needs to cross through document fragment
barriers, such as the Shadow DOM barrier. This patch allows batarang to figure this out.

In addition, it provides some tests for the angularjs properties sidebar of the element
panel, which were missing previously.

Closes angular#104
@caitp
Copy link
Contributor Author

caitp commented Mar 17, 2014

I think I got a "merge it" in the meeting, so, I'm gonna check this in. It's unlikely to break anything, at any rate

@caitp caitp closed this in 8a96f31 Mar 17, 2014
caitp added a commit that referenced this pull request Mar 21, 2014
…edData()

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
caitp added a commit to angular/batarang that referenced this pull request Jul 16, 2015
…Fragments

Sort of related to angular/angular.js#6637 --- Currently,
jqLite#inheritedData() will not find data if it needs to cross through document fragment
barriers, such as the Shadow DOM barrier. This patch allows batarang to figure this out.

In addition, it provides some tests for the angularjs properties sidebar of the element
panel, which were missing previously.

Closes #104
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants