簡體   English   中英

Angular2 pathLocationStrategy:url更改導致頁面重新加載

[英]Angular2 pathLocationStrategy: url change cause page reload

在使用HashLocationStrategy時,我可以通過手動更改瀏覽器地址欄中的地址來更改路由,而無需重新加載頁面。 即從mysite/#/home導航到mysite/#/profile

但是,如果我使用PathLocationStrategy (它是默認位置策略),當我嘗試做同樣的事情時,我有不需要的頁面重新加載。 即從mysite/home導航到mysite/profile

有可能解決這個問題嗎?

我正在使用Angular 2.0.0-beta17

這是“按設計”。 當您只更改#... ,沒有任何內容可以發送到服務器。 #...部分始終只由瀏覽器處理,從不發送到服務器。

當您之前改變部分#的,如果你沒有一個#高於一切是在─ # -part然后在瀏覽器需要做出新的請求到服務器,以獲取URL。

如果您使用window.history... API( https://developer.mozilla.org/en-US/docs/Web/API/History_API ),那么您告訴瀏覽器只更新URL欄但不要調用到服務器。 Angular路由器使用此API,因此這可以在應用程序內部使用,也可以在使用后退或前進按鈕時使用,但在手動更改URL時則不行。

如果要在路由更改時使用HTML5路徑(PathLocationStrategy)而不使用NG2頁面刷新,則必須使用routerLink指令,即:

<a [routerLink]="['/my-page']">My Page</a>
<a [routerLink]="['/my-other-page']">My Other Page</a>

在@NgModule init導入:

RouterModule.forRoot([
  {path: '',              component: DefaultComponent},
  {path: 'my-page',       component: MyPageComponent},
  {path: 'my-other-page', component: MyOtherPageComponent}
]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM