Angular 2:防止路由器添加到历史记录

时间:2017-02-03 16:09:59

标签: javascript angular iframe angular2-routing browser-history

我们的应用程序中有一个iFraming客户端到他们的网站。他们不希望我们的应用程序中的路由器导航影响他们自己站点的后退按钮导航。

我们尝试了几种方法,包括使用post消息尝试让iFrame在触发history.back()时与父窗口进行通信。

我的问题是,在使用Angular 2的路由器时,是否有任何简单的方法可以不影响浏览器的历史记录。据我所知,我无法在Angular 2的高级路由器文档中找到任何内容:https://angular.io/docs/ts/latest/guide/router.html

2 个答案:

答案 0 :(得分:16)

事实证明,Angular 2的路由有一种内置方式可以跳过向状态添加状态。我们实际上发现它通过编辑器的intellisense中的随机属性进行检查。

我们的路由代码必须来自:

this.router.navigate([`/myPage/${this.Id}`], { relativeTo: this.route });

为:

this.router.navigate([`/myPage/${this.Id}`], { relativeTo: this.route, skipLocationChange: true });

答案 1 :(得分:4)

此外,NavigationExtras中有一个选项,可以用新的状态替换历史记录中的当前状态:

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