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

fix($compile): support transcluding multi-element directives #15554

Closed
gkalpak opened this issue Dec 29, 2016 · 0 comments · Fixed by #15555
Closed

fix($compile): support transcluding multi-element directives #15554

gkalpak opened this issue Dec 29, 2016 · 0 comments · Fixed by #15555

Comments

@gkalpak
Copy link
Member

gkalpak commented Dec 29, 2016

Do you want to request a feature or report a bug?

Bug.

What is the current behavior?
Transcluding multi-element directives (e.g. ng-repeat-start/ng-repeat-end) is not supported on elements with multi-slot transclusion and a $compile:uterdir error is thrown.
Originally reported by @jamie-pate in #14653 (comment).

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).
Reproduction.

What is the expected behavior?
Multi-element directives should be transcluded correctly on elements with multi-slot transclusion and without throwing.

Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.

Affects all Angular versions since a least 1.5.0 (including 1.6.x/master).

@gkalpak gkalpak added this to the Backlog milestone Dec 29, 2016
gkalpak added a commit to gkalpak/angular.js that referenced this issue Dec 29, 2016
Previously, transcluding multi-element directives (e.g. `foo-start`/`foo-end`)
was not supported on elements with multi-slot transclusion (a `uterdir` error
was thrown).
This commit fixes it by putting the transcluded nodes into a DocumentFragment,
where they can be traversed via `.nextSibling`.

Fixes angular#15554
@jbedard jbedard self-assigned this May 3, 2018
gkalpak added a commit to gkalpak/angular.js that referenced this issue May 23, 2018
Previously, transcluding multi-element directives (e.g. `foo-start`/`foo-end`)
was not supported on elements with multi-slot transclusion (a `uterdir` error
was thrown).
This commit fixes it by putting the transcluded nodes into a DocumentFragment,
where they can be traversed via `.nextSibling`.

Fixes angular#15554
Narretz pushed a commit that referenced this issue May 26, 2018
Previously, transcluding multi-element directives (e.g. `foo-start`/`foo-end`)
was not supported on elements with multi-slot transclusion (a `uterdir` error
was thrown).
This commit fixes it by putting the transcluded nodes into a DocumentFragment,
where they can be traversed via `.nextSibling`.

Fixes #15554
Closes #15555
Narretz pushed a commit that referenced this issue May 26, 2018
Previously, transcluding multi-element directives (e.g. `foo-start`/`foo-end`)
was not supported on elements with multi-slot transclusion (a `uterdir` error
was thrown).
This commit fixes it by putting the transcluded nodes into a DocumentFragment,
where they can be traversed via `.nextSibling`.

Fixes #15554
Closes #15555
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.