ember自己的backbutton实现

时间:2015-10-23 15:17:47

标签: ember.js ember-router

在最新版本的ember中,实现后退按钮功能的最佳方法是什么。 我的意思是,不仅使用浏览器后退按钮。我的应用程序的左上角有我自己的后退按钮。 如果浏览器历史记录中的上一页不在我的应用程序中,那么我想转到我的应用程序主页。 关于如何解决这个问题有很多建议,但它们相当陈旧。如何在最新版本的ember中正确执行此操作?

我认为window.history.go(-1);不会在所有情况下都这样做。

我想我必须保留自己的历史堆栈?如何挂钩每个转换来维护堆栈?

1 个答案:

答案 0 :(得分:0)

我不知道这是否是最佳解决方案,但它很容易实现:

在您的路线中使用事件willTransition来了解用户何时进行转换,并在完成转换之前,将实际路径存储在service中(我建议使用service,因为只需注入它就可以在所有路径中使用它)。然后,您只需要请求service前一个路由转换到单击按钮时。为了避免样板代码,您可以为mixin事件制作willTransition,因此您只需要将mixin添加到您的路线,而不是再次重复相同的代码,再次