This repository has been archived by the owner on Apr 12, 2024. It is now read-only.
Support modifying the DOM structure in link function of a directive #1773
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Support modifying the DOM structure in the post link function of a directive by creating a defensive copy of the node list, as opposed to a live DOM list.
This is useful for directives to actually replace their entire DOM fragment, e.g. with the HTML fragment generated by a 3rd party component (Closure, Bootstrap ...). Closure doesn't support attaching to an existing DOM fragment easily (decorate always recursively walks the tree, instantiating additional components and performing unwanted DOM changes).
The workaround is to have Closure .renderSibling() its component and then move the content that's controlled by Angular into the component. To achieve that, Angular must support linking functions changing the DOM, which this patch implements.
Also fix the indentation of the compileNodes function (was one too little).