我目前正在尝试在我的ember应用中实现可路由模式的要求。目标是使用标签式模式叠加,其中每个标签都有自己的网址(例如/settings
,/settings/profile
或/settings/billing
),但仍显示 over 路线目前在后台。
一个实例可能是twitter.com的直接消息模式,但是让它打开模态(并点击模态内的链接)会更新应用的URL。
我试图实现这一点的主要障碍是我的网点在退出“顶部”路线时断开连接。我已经在覆盖Route#teardownViews
方面取得了一些初步成功,但我担心其他副作用。
编辑:为了清楚起见,我确实将模态渲染到一个单独的出口:
SettingsRoute = Ember.Route.extend
renderTemplate: ->
@render
into: 'application'
outlet: 'modal'
这可能会有一个更好的方法来采取这里?
答案 0 :(得分:1)
这似乎在概念上有效(如果我没有转换到消息或设置路线(我已经定义为'模态'路线),我只会拆除'主'路线的视图):
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)
如果我做出任何其他进展,我会回复。