angular做單頁面應用是一個比較好的框架,但是它有一定的入門難度,對于新手來說可能會碰到很多坑,也有許多難題,大部分仔細看文檔,找社區(qū)是能解決的。
但有些問題也許資料比較少,最近遇到過一個要緩存父頁面的問題,就是點擊進入子頁后,再返回時父頁面的數(shù)據(jù)要緩存下來,包括滾動條的位置。再做的過程當中查過
許多資料,都說的不很詳細,今天把方法記錄下來,供參考。
要想緩存,要用到嵌套路由(ui-router):
有三個嵌套的方法:
嵌套路由如有不明白的,大家可以自己去google下。
1.在路由中配置好后,在父頁面中設(shè)置一個子view.
路由配置:
$stateProvider .state('parent', {}) .state('parent.sub',{ url: '/flightStatus/:time', views:{ 'subView':{ templateUrl: 'sub.html', controller: '' } } });2.配置好后,在父頁面添加view和名字(如果只有一個ui-view,名字可以不要)
parent.html
<ui-view name="subView"></ui-view><!--其它html代碼-->……
3.這時由父頁面進去后,子頁面sub.html會加載到name為subView中
在子頁面中返回時,用angular的$window.history.back();
注意:這里返回時父頁面的controller將不在執(zhí)行
進行以上配置后就可以緩存到父頁面的數(shù)據(jù)了,返回時不會刷新,在進入子頁面時大家最好把父頁面隱藏(不隱藏是把內(nèi)容高度設(shè)為100%),返回時再顯示,這樣避免子父頁面都有輸入框下,按下tab時會把父頁面顯示的bug
以上所述是小編給大家介紹的使用Angular緩存父頁面數(shù)據(jù)的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持
新聞熱點
疑難解答