使用Angular緩存父頁面數(shù)據(jù)的方法
angular做單頁面應用是一個比較好的框架,但是它有一定的入門難度,對于新手來說可能會碰到很多坑,也有許多難題,大部分仔細看文檔,找社區(qū)是能解決的。
但有些問題也許資料比較少,最近遇到過一個要緩存父頁面的問題,就是點擊進入子頁后,再返回時父頁面的數(shù)據(jù)要緩存下來,包括滾動條的位置。再做的過程當中查過
許多資料,都說的不很詳細,今天把方法記錄下來,供參考。
要想緩存,要用到嵌套路由(ui-router):
有三個嵌套的方法:
- 使用“點標記法”,例如:.state('contacts.list', {})
- 使用parent屬性,指定一個父狀態(tài)的名稱字符串,例如:parent: 'contacts'
- 使用parent屬性,指定一個父狀態(tài)對象,例如:parent: contacts(contacts 是一個狀態(tài)對象
嵌套路由如有不明白的,大家可以自己去google下。
1.在路由中配置好后,在父頁面中設置一個子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)容高度設為100%),返回時再顯示,這樣避免子父頁面都有輸入框下,按下tab時會把父頁面顯示的bug
以上所述是小編給大家介紹的使用Angular緩存父頁面數(shù)據(jù)的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持
相關文章
詳解在Angularjs中ui-sref和$state.go如何傳遞參數(shù)
這篇文章主要介紹了詳解在Angularjs中ui-sref和$state.go如何傳遞參數(shù),詳細的介紹了ui-sref和$state.go的區(qū)別和如何傳參,有興趣的可以了解下2017-04-04Angular.js實現(xiàn)獲取驗證碼倒計時60秒按鈕的簡單方法
最近做項目的時候又遇到了驗證碼倒計時的需求,發(fā)現(xiàn)這個功能還是挺實用的,所以就想著總結一下,下面這篇文章主要給大家介紹了關于利用Angular.js如何實現(xiàn)獲取驗證碼倒計時按鈕的簡單方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-10-10angularjs利用directive實現(xiàn)移動端自定義軟鍵盤的示例
下面小編就為大家?guī)硪黄猘ngularJS利用directive實現(xiàn)移動端自定義軟鍵盤的示例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09Angularjs中的事件廣播 —全面解析$broadcast,$emit,$on
下面小編就為大家?guī)硪黄狝ngularjs中的事件廣播 —全面解析$broadcast,$emit,$on。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧2016-05-05AngularJS實踐之使用NgModelController進行數(shù)據(jù)綁定
大家都知道AngularJS中的指令是其尤為復雜的一個部分,但是這也是其比較好玩的地方。這篇文章我們就來說一說如何在我們自定義的指令中,利用ngModel的controller來做雙向數(shù)據(jù)綁定,本文對大家學習AngularJS具有一定的參考借鑒價值,有需要的朋友們可以參考借鑒。2016-10-10