我剛從我們的QA團隊獲得了一個要求,我覺得這聽起來很荒謬。這裏是:假設你已經在基於角度的應用中的'about'狀態/頁面上,並且當你從頂部菜單中再次點擊'about'狀態url時,你想要重新加載'about'頁面。 about
頁面不會從任何地方獲取數據,順便說一下,重新加載僅僅等同於眨眼。AngularJS with ui.router:點擊同一狀態鏈接時重新加載頁面
對於我的角度應用程序狀態的配置是這樣的:
.state('about', {
url: '/about',
templateUrl: '/path/to/about.html',
controller: 'aboutCtrl as aboutView'
});
而在頂部的菜單,我們有指向這個狀態的鏈接:
<a ui-sref="about">About</a>
我已經嘗試了很多東西讓這個工作:單擊鏈接觸發重新加載相同的狀態。
像$state.go('about', {}, {reload: true});
或$state.transitionTo('about', {}, {reload: true});
這樣的東西不起作用,因爲鏈接是靜態的。
目前我正在一個不得已是通過聽'$stateChangeSuccess'
事件來操作的角度在run
階段重裝的事情,但我不認爲它會工作,因爲如果你點擊有沒有狀態變化都'about'
鏈接,而你正處於該狀態。
有什麼辦法可以解決這個問題嗎?謝謝
「我剛剛從我們的QA團隊,我認爲這聽起來很可笑的請求」 - 讓我很快樂TY – scniro
高興你有一個很好笑。我確實認爲這是一個荒謬的要求,認爲用ui.router不可能做到。我正在等一些專家來啓發我。謝謝 – TonyGW
我不認爲重新加載關於頁面(我假設它是靜態的)是一個很好的方式去出於幾個原因 - 你的應用程序應該只是告訴用戶他們已經在那個頁面上。一個很好的例子是Material Design的動畫,當你反覆點擊同一個選項卡時 - https://material.angularjs.org/latest/#/demo/material.components。標籤 – JaKXz