我現(xiàn)在有一個頁面(比如列表頁面)
然后點擊其中的一條進入下一個頁面(比如詳情頁面,是一個新的頁面),然后返回上一頁(也就是列表頁面)。
這時候會刷新列表頁面,呈現(xiàn)的頁面又是第一次進入該頁的效果,我剛請求的那些數(shù)據(jù)沒了,又得重新請求,如果用戶請求了很多,頁面很長,返回到這頁時都沒了,用戶體驗太差了。
如何做到返回到前一頁時保留上一次從該頁跳轉(zhuǎn)到其他頁面時該頁的狀態(tài)?
我現(xiàn)在是這樣做的:查詢這個列表之后用localStorage保留數(shù)據(jù),把當前的頁數(shù)帶到詳情里面,然后加一個返回按鈕,再把頁數(shù)帶來,如果有頁數(shù)就把localStorage存的數(shù)據(jù)取出,如果沒有就刪除存的數(shù)據(jù)。還有沒有更好的答案??我想的是不需要加返回按鈕,直接點瀏覽器的返回,就能回到上一頁的狀態(tài),各位大佬能有更好的解決方案嗎?
你可以創(chuàng)建一個service, 因為你這個功能就是做stickness嘛, 所以可以叫SticknessService,
在component注入這個service, ngOnInit()的時候去根據(jù)對應的標識讀取對應的數(shù)據(jù)。
因為angular service是單例模式的,所以一旦初始化后,這個service就會在了。
用localStorage也是可以做得,類似的原理。 localStorage更適用于在angular中打開的多個tab的情況下。
所以你這種情況使用service就可以了。
還有一種就是使用Router來做,但這個適用于參數(shù)不是特別多,而且很簡單,比如數(shù)字,字符串等。
如果你需要存數(shù)組,或者對象,還是推薦使用service。
在component中可以注入router,在ngOnInit的時候監(jiān)聽router的params事件
this.router.params.subscribe((parmas: any) => {
//.....
}北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。