Angular2 pathLocationStrategy : url change cause page reload

标签 angular angular2-routing html5-history

在使用 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/

相关文章:

javascript - Angular 2 模板选择器未知

angular - 嵌入式与 ng-content 子级的不同 ChangeDetectionStrategy.OnPush 行为

css - 从我们的组件 Angular 覆盖外部库的样式

Angular2 无法解析 RouterOutlet : (RouterOutletMap, ViewContainerRef,?,名称的所有参数)

没有导航栏的 Angular 2 路由

c# - 处理 servicestack Html5ModeFeature 插件中的任何默认文档类型

javascript - HTML5 History API 初始加载问题

javascript - 父子操纵之间的共享值(value)

angularjs - 对于 AngularJS Web 应用程序 : webpages don't remember their last scroll positions when navigating back to them with the back button. 为什么?怎么修?

ModuleWithProviders 的 Angular 2 路由错误