因此。我有一个非常简单的问题,应该有一个简单的解决方案。我只是没有看到它。
在我的ember应用程序中,我有一个登录路由,以及标题中的链接。单击此按钮,然后转到登录表单。成功登录后,我想返回登录表单前显示的路径。
类似以下网址序列
/ post / 209 - 用户点击登录
/ login - 用户提供凭据,提交和
/ post / 209 - 显示
答案 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,活动路线将是
在我的应用程序中,我在ApplicationRoute中捕获routeChanged事件,并在ApplicationController中保留最后一个事件的堆栈。此堆栈中的第二个条目用于转换到上一个路径。
答案 2 :(得分:-1)
登录页面链接应该是一个GET请求,其中包含指向上一页的链接。
如下面的Ex,twitter
https://twitter.com/login?redirect_after_login=%2FitsWillyFerrell%2Ffollowers
观察redirect_after_login
字段指向我来自的人员页面的用户名,因此您可以在登录后前往一个地方。