如何在Angular 4应用程序

时间:2018-02-04 16:32:57

标签: javascript angular angular-ui-router rxjs

我有2条路由被定义为主页和page1。我将从主页上通过 this.router.navigation(带一些查询参数)来访问page1。现在我转到第1页,我有一些过滤器,我可以添加它来从api获取特定数据。我添加了那些过滤器我通过 this.router.navigation(带有一些查询参数)更改了page1网址。添加/删除多个过滤器后,我的网址发生了多次变化..现在我有一个后退按钮点击应该导航我到主页。

1.我尝试过使用history.back / location.back.But我必须多次点击。(我看到navigationstart被多次调用)

2.i尝试了成对使用rxjs的解决方案 但我无法进入上一页(主页)。 3.这只是一种情况。基本上我必须得到前面页面的路径。我不能在backFunc中硬编码路径,因为这对于我所有其他类似类型的页面都必须是通用的。我可以从任何其他页面来到page1,并且应该可以返回相应的页面。 我错过了一些非常明显的事情,Angular 4是否提供了解决这个问题的方法?

2 个答案:

答案 0 :(得分:0)

我对这个问题感到有些困惑,但它应该像使用router.navigate导航到主页一样简单。如果做不到这一点,请尝试使用https://angular.io/api/common/Location服务的后退功能。

答案 1 :(得分:0)

router.navigate有额外的参数,如" replaceUrl"。 如果将其设置为true(当您更改查询参数时),浏览器会认为您没有更改页面。所以history.back会起作用。

查看https://angular.io/api/router/NavigationExtras

this.router.navigate(['/page1'], {replaceUrl: true, queryParams:{...}});