在最新版本的ember中,实现后退按钮功能的最佳方法是什么。 我的意思是,不仅使用浏览器后退按钮。我的应用程序的左上角有我自己的后退按钮。 如果浏览器历史记录中的上一页不在我的应用程序中,那么我想转到我的应用程序主页。 关于如何解决这个问题有很多建议,但它们相当陈旧。如何在最新版本的ember中正确执行此操作?
我认为window.history.go(-1);
不会在所有情况下都这样做。
我想我必须保留自己的历史堆栈?如何挂钩每个转换来维护堆栈?
答案 0 :(得分:0)
我不知道这是否是最佳解决方案,但它很容易实现:
在您的路线中使用事件willTransition
来了解用户何时进行转换,并在完成转换之前,将实际路径存储在service
中(我建议使用service
,因为只需注入它就可以在所有路径中使用它)。然后,您只需要请求service
前一个路由转换到单击按钮时。为了避免样板代码,您可以为mixin
事件制作willTransition
,因此您只需要将mixin
添加到您的路线,而不是再次重复相同的代码,再次