An Ember.js addon that renders a component's block to a different DOM element while preserving Ember context.
Ember Wormhole is an Ember.js addon that provides a component for rendering a block of content to a DOM element elsewhere on the page, outside the normal component hierarchy. It maintains full Ember context, including data binding and action handling, making it ideal for UI elements like modals or tooltips that need to be rendered as top-level DOM nodes. The addon is compatible with Ember FastBoot and offers flexible rendering options.
Ember.js developers building applications that require UI components, such as modals, tooltips, or dialogs, to be rendered as top-level DOM elements while preserving Ember's data flow and component hierarchy. It is also suitable for developers needing dynamic or conditional DOM teleportation within Ember apps.
Developers choose Ember Wormhole because it seamlessly integrates with Ember's component model, maintaining data bindings and action bubbling as if the content were rendered in place, unlike manual DOM manipulation. Its declarative API, support for conditional rendering, and compatibility with Ember FastBoot offer a robust solution for DOM teleportation without breaking Ember's context.
Render a child view somewhere else in the DOM.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Maintains Ember's data binding and action bubbling as if content were rendered in place, ensuring seamless integration with component hierarchies, as stated in the README.
Supports conditional rendering, dynamic destination targeting via ID or element object, and an optional renderInPlace property for in-situ display, demonstrated in code examples.
Works with Ember FastBoot for server-side rendering when the destination element is part of Ember's templates, as confirmed in the README from version 0.4.0.
Offers a clean, Ember-native syntax that integrates easily with templates, making it straightforward to implement DOM teleportation without manual DOM manipulation.
For Ember 2.10, requires a stable root element inside the wormhole block, adding complexity for dynamic or conditional content without wrappers, as noted in the README.
Limited to the Ember.js ecosystem, making it unsuitable for projects using other frameworks or requiring cross-platform compatibility, which restricts its applicability.
Has compatibility notes for specific Ember versions, such as 2.10, and may face breaking changes with Ember updates, increasing maintenance overhead for teams.
Since Ember 3.21, the built-in in-element helper provides similar functionality, potentially making this addon unnecessary for simpler use cases, as acknowledged in the README.