我有一个在Angular 2中构建的项目页面,它是从项目列表页面链接的 . 我正在尝试添加一个“后退”链接,该链接将用户带回到项目列表页面,使用路径参数恢复以前的URL . 使用Location.back()可以正常工作 . 但是,如果用户通过深层链接登录项目页面,则Location对象中没有历史记录,因此Location.back()不起作用 . 我尝试了以下操作,因此如果back()函数不起作用,应用程序会触发navigate()函数,但一旦应用程序导航回项目页面,它就会抛出错误:
clickGoToItemsPage() {
this._location.back();
this._router.navigate(['ItemsPage']);
}
我得到的错误是:
EXCEPTION: Error: Uncaught (in promise): TypeError: Cannot read property 'constructor' of undefined
触发第二个函数并且页面位于ItemsPage后发生错误 . 这有什么方法吗?
1 回答
不确定我理解你的问题 . 您可以从
this._location.back()
捕获错误,然后再调用this._router.navigate(...)
. 如果this._location.back()
成功,则不执行this._router.navigate(...)
. 这是你想要的吗?