Ember.js 在任何路线的顶部布置模态
我目前正在尝试在我的ember应用程序中实现可路由模式的要求。目标是有一个选项卡式模式覆盖,其中每个选项卡都有自己的URL(例如,Ember.js 在任何路线的顶部布置模态,ember.js,modal-dialog,ember-router,Ember.js,Modal Dialog,Ember Router,我目前正在尝试在我的ember应用程序中实现可路由模式的要求。目标是有一个选项卡式模式覆盖,其中每个选项卡都有自己的URL(例如,/settings,/settings/profile,或/settings/billing),但仍然显示在当前位于后台的任何路由上 一个活生生的例子可能是’s direct messages modal,但它可以使打开该模式(并单击模式内的链接)更新应用程序的URL 我在尝试实现这一点时遇到的主要障碍是,我的插座在“顶部”路线出口时断开。我在覆盖Route#tear
/settings
,/settings/profile
,或/settings/billing
),但仍然显示在当前位于后台的任何路由上
一个活生生的例子可能是’s direct messages modal,但它可以使打开该模式(并单击模式内的链接)更新应用程序的URL
我在尝试实现这一点时遇到的主要障碍是,我的插座在“顶部”路线出口时断开。我在覆盖Route#teardownViews
方面取得了一些初步成功,但我担心其他副作用
编辑:为清晰起见,我确实在单独的插座中渲染模式:
SettingsRoute = Ember.Route.extend
renderTemplate: ->
@render
into: 'application'
outlet: 'modal'
这里有没有更好的方法 这在概念上似乎是可行的(如果我没有转换到消息或设置路由(我定义为“模式”路由),我只会删除“主”路由的视图):
如果我有任何其他进展,将发回。将您的“模态对话框”问题与问题分开。这就是你展示路线的
{{outlet}}
的方式。我甚至不知道将子例程标记为书签意味着什么,而不管它在哪条路径上<代码>{fuzzed:true}问题已编辑-希望它更有意义。:)
Ember.Route.reopen
teardownViews: ->
@_super() unless @controllerFor('application').get('currentTransition.targetName') == 'messages.index'
actions:
willTransition: (transition) ->
controller = @controllerFor('application')
controller.set('currentTransition', transition)
transition.then ->
controller.set('currentTransition', null)
, ->
controller.set('currentTransition', null)