1

我的应用程序模板中有一个命名的插座,我仅用于模态(弹出)视图。默认情况下,我希望这是一个空的、未使用的插座,因为我的路线中只有大约 5% 会涉及模态显示。对于那些特定的模态路线,我从深层嵌套的子路线中插入模态模板,例如

App.NeeplyNestedModalChildRoute = Ember.Route.extend({
  renderTemplate: function() {        
    this.render({
      into: 'application',
      outlet: 'modal'
    });
  }
});

我遇到的问题是我希望“关闭模态框”涉及过渡到不同的、非模态的、嵌套较浅的路线。我已成功过渡到正确的路线,但我不知道如何清除模态出口。如何强制模式出口清除所有非模式路线?


4

2 回答 2

1

我在@intuitive pixel 正在谈论的问题上评论了这个用例。至少部分功能似乎已经为您尝试做的事情提供了功能。离开路线时,您可以使用deactivate挂钩。我认为,您可以清除出口。

也许您可以创建一个空模板,然后将其渲染到插座中。然后当调用 deactivate 钩子时,只需将空模板渲染到插座中。在他们关闭问题之前,这应该可以工作。

于 2013-06-17T03:39:28.357 回答
0

我正在使用以下代码的变体来清除我的模态outlet

clearOutlet: function (container, outlet) {
    var parentView = this.router._lookupActiveView(container);
    parentView.disconnectOutlet(outlet);
  }

在 Ember 讨论板上查看来自 @teddyzeeny 的完整代码:http: //discuss.emberjs.com/t/modal-views-can-we-agree-on-a-best-practice/707/2

于 2013-06-17T10:55:13.120 回答