由于某些原因,我需要在浏览器中嵌入angular应用程序,出于某些原因,我需要浏览器保存状态,并且不希望angular将新状态推送到浏览器历史记录中。
根据角度文档Here {skipLocationChange:true},我可以这样做。下面是我修改的代码。
this.router.navigate(['/customComponent'],{ skipLocationChange: true });
静止角度仍在浏览器历史记录中推动新的历史记录状态。
state: {navigationId: 2}
下面是控制台快照。
路由代码有什么问题吗?或我缺少任何参数。
答案 0 :(得分:0)
问题在于app.module.ts中的路由配置。 由于angular会将默认路径路由到customComponent,它会修改状态,并且没有提供传递skipLocationChange参数的条件,因此我不得不使用appComponent构造函数中的skipLocationChange重新路由到customComponent。
直接引导customComponent也将有所帮助,具体取决于编写的代码。
const appRoutes: Routes = [
- {
- path: '',
- redirectTo: "/customComponent",
- pathMatch: 'full'
- },
答案 1 :(得分:0)
我用这个 this.router.navigate(['process-form/' + processDefCustomId + '/' + taskId], { skipLocationChange: true });在 constructor() 和 skipLocationChange: true 中不起作用。
我将我的代码移到 ngOnInit() 方法和 skipLocationChange: true 工作。