Angular 2 URL栏使用导致不需要的应用程序重新加载

时间:2017-01-10 18:05:57

标签: angular browser

我的程序是对Angular 2" Routing"的修改。高级教程。我可以通过表单控件导航到正确的位置。但是使用URL栏会给我带来麻烦。

假设我之前已导航到某项功能,因此已发生登录和延迟加载。如果我在我登录页面的URL中输入其地址。跟踪我的代码我从一开始就重新开始,以前懒惰加载的模块现在不为系统所知。

或使用Plunker页面中的库存应用程序。在我导航到危机中心#2编辑页面后,我输入了网址栏:

http://localhost:8000/crisis-center/1

我收到此控制台错误:

zone.js@0.6.25?main=browser:1274 GET http://localhost:8000/crisis-center/crisis-center/app/main.ts

我的目标是危机中心/ 1的访问应该向我显示记录编辑器页面中的记录,这是通过Angular 2控件的常见行为。相反,该应用程序开始重新加载。它无法找到localhost:8000 / app / main.ts而是加载localhost:8000 / crisis-center / crisis-center / app / main.ts。

我怀疑我应该使用浏览器本地存储做些什么,但是什么?

谢谢, 杰罗姆。

1 个答案:

答案 0 :(得分:1)

Angular使用pushState API,只有在使用此API时才能更改URL而不会导致页面重新加载。

如果手动更改URL,浏览器会重新加载URL。你或Angular没有什么可以做的。

另见https://developer.mozilla.org/en-US/docs/Web/API/History_API