Helps render a stack to outlets.
For example, you've got a navigation section in the application template into which you want to render contextual information.
You could achieve this with Route#render
but will quickly run into the problem that exiting a route
will not re-display content from a parent route.
Eg. /foo
renders to navigation
as does /foo/bar/baz
, but navigating to /foo/bar
from /foo/bar/baz
will end up displaying nothing instead of re-rendering /foo
's navigation.
That's what this addon solves.
Install as an Ember CLI addon:
npm install --save-dev ember-render-stack
First mixin the RenderMixin
to your ApplicationRoute
:
import Ember from 'ember';
import { StackRenderMixin } from 'ember-render-stack';
export default Ember.Route.extend(StackRenderMixin);
Next add an outlet you want to manage to a layout, eg your application.hbs
:
Finally, mixin the RouteMixin
to each route you want to render into the stack and call
renderToStack
for each outlet:
import Ember from 'ember';
import { StackRouteMixin } from 'ember-render-stack';
export default Ember.Route.extend(StackRouteMixin, {
renderStack: function() {
this.renderToStack('navigation/some-template', {
into: 'application',
outlet: 'navigation'
});
}
});
renderToStack
takes the same options as the standard Route#render
so you can simply replace calls to render
with renderToStack
.
git clone
this repositorynpm install
bower install
ember server
- Visit your app at http://localhost:4200.
ember test
ember test --server