router.navigate 中的 {skipLocationChange : true} 不工作;改变状态

{skipLocationChange : true} in router.navigate not working; changing the state

我正在尝试在 JSP 页面上嵌入 Angular 应用程序,出于某些原因我需要浏览器来保留状态并且不希望 angular 将新状态推送到浏览器历史。

根据 Angular documentation { skipLocationChange: true } 将允许我这样做。下面是我修改后的代码。

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

仍然Angular正在浏览器历史记录中推送新的历史记录状态。

state: {navigationId: 2}

下面是控制台快照。

路由代码有问题吗?或者我缺少任何参数。

问题出在 app.module.ts 中的路由配置。 由于 angular 将默认路径路由到 customComponent,它修改了状态并且没有规定传递 skipLocationChange 参数,我不得不使用 appComponent 构造函数中的 skipLocationChange 重新路由到 customComponent在我的案例中是自举的。

根据编写的代码,直接引导 customComponent 也会有所帮助。

const appRoutes: Routes = [
{
    path: '',
    redirectTo: "/customComponent",
    pathMatch: 'full'
},

我用这个 this.router.navigate(['process-form/' + processDefCustomId + '/' + taskId], { skipLocationChange: true });在 constructor() 和 skipLocationChange: true 中不起作用。

我将我的代码移至 ngOnInit() 方法并且 skipLocationChange: true 有效。