在使用 HashLocationStrategy 时我可以通过手动更改浏览器地址栏中的地址来更改路由,而无需重新加载页面。 IE。从 mysite/#/home
导航到 mysite/#/profile
但是,如果我使用 PathLocationStrategy (这是默认的位置策略),当我尝试做同样的事情时,我有不需要的页面重新加载。 IE。从 mysite/home
导航到 mysite/profile
有可能解决这个问题吗?
我正在使用 Angular 2.0.0-beta17
最佳答案
那是“按设计”。当您只更改 #...
时,没有任何内容可以发送到服务器。 #...
部分始终仅由浏览器处理,从不发送到服务器。
当您更改 #
之前的部分时,如果您没有 #
则一切都是 before-#
部分然后浏览器需要向服务器发出新请求以获取 URL。
如果您使用 window.history...
API ( https://developer.mozilla.org/en-US/docs/Web/API/History_API ),那么您告诉浏览器只更新 URL 栏,但不要调用服务器。
Angular 路由器使用此 API,因此它可以在应用程序内部或在您使用后退或前进按钮时使用,但在您手动更改 URL 时不起作用。
关于Angular2 pathLocationStrategy : url change cause page reload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37031501/