2

我正在尝试通过应用程序路由呈现我的所有模式,但是在我关闭模式后,我无法找出返回到先前状态的正确方法。

这是基本设置:

我的应用程序模板中有一个插座,用于显示模式对话框。

它看起来像:

{{ outlet modal }}

在我的路线映射中,我为单个模态定义了钩子。例如,我的帮助对话框弹出:

App.HelpRoute = Ember.Route.extend({
    renderTemplate: function(controller, model) {
        this.render({ outlet: 'modal' });
    }
});

现在,我可以通过 uri 显示我的模态:

   foo.com/#/help

我有一个使用 jQuery 解除模式的钩子:

$('#modalHelpWindow').modal('hide');

但这并没有真正的帮助,因为我只是隐藏了元素。我需要在解雇时更新 URI。如果我再次点击相同的路线,则模式已经隐藏,并且不会显示。

我应该使用什么方法来关闭模式,并将应用程序路由回之前的状态?我应该只使用 history.back() 吗?

请注意,我知道这个 SO 问题,但解决方案不是首选的“ember”做事方式,因为以编程方式创建的视图不会正确关联其控制器 使用 Ember 路由器 v2 进入和退出模态状态的正确方法是什么?

4

1 回答 1

2

看起来我可以连接隐藏的处理程序以在我的视图的 didInsertElement 方法中执行 history.back() 调用,例如:

   didInsertElement: function() {
        var $me = this.$();
        $me.modal({backdrop:"static"});
        $me.on('hidden', function() {
            history.back();
        });
    },
于 2013-03-07T23:52:20.403 回答