圆圈:window.history.back() 和 location.back()
Circle: window.history.back() and location.back()
在我的 Angular 应用程序中,我有一个视图和一个带有输入表单的编辑视图。
问题是:
如果我使用浏览器的后退按钮 window.history.back() 或 Angular2 once 中的等效 location.back(),它将按预期正常工作。
但是如果我连续(两次)触发浏览器的后退按钮 window.history.back() 或等效的 location.back(),它将开始一个圆圈 - 意味着返回到初始站点。
同一网站的另一个奇怪行为是:
- 从视图我用普通的编辑视图
this.router.navigate(['/edit']);
- location.back() 返回查看
- 我再次进入正常的编辑视图
this.router.navigate(['/edit']);
- 现在我要触发3次
location.back() 返回查看。
历史似乎被破坏了。
有人知道问题出在哪里吗?有没有可能跟表格有关?
不要多次导入路由。
导出常量路由:ModuleWithProviders = RouterModule.forRoot(routes)
我在从 rc4 迁移到 final 时遇到了同样的问题,以下是对我有用的方法。如 所述,您应该仅使用 RouterModule.forRoot() 方法导出属于主应用程序模块的路由一次。
export const routing: ModuleWithProviders = RouterModule.forRoot(MainModuleRoutes);
但是,如果您在主应用模块中导入了具有自己路由的子模块,则应使用 RouterModule.forChild() 将它们导出为子路由。
export const routing: ModuleWithProviders = RouterModule.forChild(ChildModuleRoutes);
在我的 Angular 应用程序中,我有一个视图和一个带有输入表单的编辑视图。 问题是:
如果我使用浏览器的后退按钮 window.history.back() 或 Angular2 once 中的等效 location.back(),它将按预期正常工作。
但是如果我连续(两次)触发浏览器的后退按钮 window.history.back() 或等效的 location.back(),它将开始一个圆圈 - 意味着返回到初始站点。
同一网站的另一个奇怪行为是:
- 从视图我用普通的编辑视图 this.router.navigate(['/edit']);
- location.back() 返回查看
- 我再次进入正常的编辑视图 this.router.navigate(['/edit']);
- 现在我要触发3次 location.back() 返回查看。
历史似乎被破坏了。
有人知道问题出在哪里吗?有没有可能跟表格有关?
不要多次导入路由。
导出常量路由:ModuleWithProviders = RouterModule.forRoot(routes)
我在从 rc4 迁移到 final 时遇到了同样的问题,以下是对我有用的方法。如
export const routing: ModuleWithProviders = RouterModule.forRoot(MainModuleRoutes);
但是,如果您在主应用模块中导入了具有自己路由的子模块,则应使用 RouterModule.forChild() 将它们导出为子路由。
export const routing: ModuleWithProviders = RouterModule.forChild(ChildModuleRoutes);