Есть хороший аддон для этого, который называется ember-routable-modal
В своем маршруте вы расширяете их миксин:
// app/routes/example.js
import Ember from 'ember';
import ModalRouteMixin from 'ember-routable-modal/mixins/route';
export default Ember.Route.extend(ModalRouteMixin, {
});
А затем используете некоторые специальныеразметка:
// app/templates/example.hbs
<div class="routable-modal--dialog">
<div class="routable-modal--content">
<div class="routable-modal--header">
{{routable-modal-close-button class="routable-modal--close"}}
<h4 class="routable-modal--title">Modal title</h4>
</div>
<div class="routable-modal--body">
Content
</div>
</div>
</div>
Теперь, когда вы переходите к / примеру, через обычного {{link-to}} помощника или вызываете this.transitionTo () в пределах маршрута, модальный пример будет отображатьповерх вашего текущего активного маршрута.Если вы загрузите страницу из URL-адреса / example напрямую, ближайший родительский маршрут будет отображен под модальным.
Вы можете удалить предоставленный шаблон и создать свой собственный диалоговый компонент, если хотите, дополнениегибкий.
Если вы чувствуете, что катаетесь самостоятельно, используйте этот аддон в качестве вдохновения.Основная идея здесь заключается в том, чтобы использовать хук маршрута renderTemplate для рендеринга в другом месте
renderTemplate() {
this.render({
into: 'application',
outlet: 'routable-modal-outlet'
});
}