如何在 Angular 中动态显示 404

Pra*_*ati 3 angular-router angular7

我一遍又一遍地搜索,但也许我的搜索词不正确,因为没有任何结果。我想根据 HTTP 请求的结果动态显示我的 404 组件。

我意识到我可以通过将用户重定向到我的 404 页面来做到这一点,但是有什么方法可以在不更改 URL 的情况下呈现组件?

就像是 /people/<nonexistent id>

  1. 执行 HTTP 请求
  2. 如果此人存在,则照常进行
  3. 如果 person 不存在,则在不更改 URL 的情况下呈现 404

谢谢!

Pra*_*ati 6

没关系,我找到了答案。

解决方案是router.navigate将选项skipLocationChange设置为true. 这告诉 Angular 在不更改浏览器导航栏中的 URL 的情况下重新路由。

https://angular.io/api/router/NavigationExtras#skipLocationChange