[英]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.