过渡回原点路线

时间:2013-09-22 19:46:32

标签: javascript ember.js

因此。我有一个非常简单的问题,应该有一个简单的解决方案。我只是没有看到它。

在我的ember应用程序中,我有一个登录路由,以及标题中的链接。单击此按钮,然后转到登录表单。成功登录后,我想返回登录表单前显示的路径。

类似以下网址序列

/ post / 209 - 用户点击登录
/ login - 用户提供凭据,提交和
/ post / 209 - 显示

3 个答案:

答案 0 :(得分:0)

我没有试过这个,这可能不是最优雅的解决方案,但你能不能简单地做window.history.back()而路由器会处理剩下的事情吗?

答案 1 :(得分:0)

要回答我自己的问题,你可以在Router上使用didTransition钩子,就像这样

App.Router.reopen({
    didTransition: function(infos) {
        this._super(infos);
        var currentRoute = infos[infos.length - 1];

        this.send('routeChanged', {
            route: currentRoute.name,
            context: currentRoute.context
        });
    }
});

infos包含转换后的活动路由数组。例如。过渡到PostEdit,活动路线将是

  • infos [0] .name ='application'
  • infos [1] .name ='post'
  • infos [2] .name ='post.edit'

在我的应用程序中,我在ApplicationRoute中捕获routeChanged事件,并在ApplicationController中保留最后一个事件的堆栈。此堆栈中的第二个条目用于转换到上一个路径。

答案 2 :(得分:-1)

登录页面链接应该是一个GET请求,其中包含指向上一页的链接。

如下面的Ex,twitter

https://twitter.com/login?redirect_after_login=%2FitsWillyFerrell%2Ffollowers

观察redirect_after_login字段指向我来自的人员页面的用户名,因此您可以在登录后前往一个地方。