ember.js v1.0.0-rc.1 -- 使用模式导出,如何在关闭时路由出模式?

标签 ember.js modal-dialog outlet

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

这是基本设置:

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

它看起来像:

{{ outlet modal }}

在我的路线映射中,我为各个模式定义了 Hook 。例如,我的帮助对话框弹出:

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

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

   foo.com/#/help

我有一个钩子(Hook)可以使用 jQuery 关闭模式:

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

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

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

注意,我知道这个问题,但解决方案不是首选的“ Ember ”做事方式,因为以编程方式创建的 View 不会使其 Controller 正确关联 What's the right way to enter and exit modal states with Ember router v2?

最佳答案

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

   didInsertElement: function() {
        var $me = this.$();
        $me.modal({backdrop:"static"});
        $me.on('hidden', function() {
            history.back();
        });
    },

关于ember.js v1.0.0-rc.1 -- 使用模式导出,如何在关闭时路由出模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15283388/

相关文章:

javascript - 嵌套资源和路径

jquery - 如何禁用 jquery 对话框按钮

angular - Angular 8 中有一个可重用的模态组件

xcode - 删除xcode中未使用的 socket

Ember.js 多个、命名 socket 用法

javascript - 如何在 emberjs 上使用单向绑定(bind)?

ember.js - 使用 DS.FixtureAdapter 时无法查询 Emberjs 模型

modal-dialog - polymer 1.x : Modal paper-dialog appears behind its backdrop

swift - 如何子类化 UITableViewCell?

node.js - 如何从 Socket.IO 响应将数据加载到 Ember Data 中?