This addon makes it easy to manage sidebars, toolbars, popups, modals, or any piece of DOM that you want to lift outside your normal route hiearchy.
It is similar to ember-wormhole, but is a better choice when your target is within your own Ember app (as opposed to arbitrary, potentially foreign DOM). It is also easier to compose with animations and it's based on 100% public API.
The best documentation is the sample application in tests/dummy
, which is also running at http://ef4.github.io/ember-elsewhere/.
ember install ember-elsewhere
Create a target named "my-right-sidebar":
Anywhere else in your app, declare which component should render in the target -- complete with bound inputs and actions:
For fancier behaviors, you can use the block form of {{#from-elsewhere}}
, which gives you an opportunity to extend the target's behavior in arbitrary ways. For example, this lets your target animate as its content changes:
There might be use cases where you would like to render multiple component into a single target, for example a from-elsewhere "actions" might receive multiple action buttons via to-elsewhere. Instead of from-elsewhere just use the complementary multiple-from-elsewhere component.
When you're using the block form of from-elsewhere
, it's entirely up to you what value you send to the target. It can be more than just a component. Here is a complete example of an animatable modal that supports an onOutsideClick
action while providing shared layout for the background and container:
ember server
- Visit your app at http://localhost:4200.
npm test
(Runsember try:testall
to test your addon against multiple Ember versions)ember test
ember test --server
ember serve
- Visit the dummy application at http://localhost:4200.
For more information on using ember-cli, visit http://www.ember-cli.com/.