簡體   English   中英

使用Angular2將HTML頁面存儲在內存中

[英]Store HTML page in memory with Angular2

我想將網頁保留在內存中,以便當我點擊后退按鈕(不是網頁瀏覽器上的那個)或路由器鏈接時,如果我已經訪問它,HTML頁面會立即加載(因為我有一些數據要加載我不想重裝)。

我見過一個帶標簽界面的方法: https//www.w3.org/Style/Examples/007/target.en.html#tab1但它不適合我的代碼架構。

我在routerlink中使用routerlink來導航投擲頁面,在click上調用函數的后退按鈕轉到上一頁。

我嘗試盡可能詳細,以便人們可以更好地理解我的代碼架構和routerlink方法的工作方式。

后退按鈕功能(獨立於routerlink ):

 goBack() {
 window.history.back();
 }

第1頁到第2頁的路由器鏈接方法:

page1.html:

<a[routerLink]="['PAGE2']"> go to page 2</a>

page1.ts組件:

 import { Router, ROUTER_DIRECTIVES } from '@angular/router-deprecated';
 @Component({
 selector: 'page1',
 templateUrl: 'page1.html',
 styleUrls:  ['page1.css'],
 directives: [ROUTER_DIRECTIVES]
 })

main.ts:

import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from '@angular/router-deprecated';

@Component({
providers: [ROUTER_PROVIDERS]
})

@RouteConfig([
{ path: '/page2',  name: 'PAGE2',  component: Page2}]) //component representing class Page2 in page2.ts

我們歡迎任何幫助我管理它的想法,謝謝!

只需緩存服務中的數據,如在RxJs 5中分享Angular 2 Http網絡調用結果的正確方法中所述?

當您離開並返回組件時,目前無法阻止路由器重新創建組件。

那么,對於那些有同樣問題的人,我認為管理它的最好方法是將數據映射到localStorage key如下所示:

  localStorage.setItem('favoris',JSON.stringify(my_array)); //set my data array
  array =  JSON.parse(localStorage.getItem('key_name')); //get in array

然后路由器調用的類中的ngOnInit將調用初始函數,具體取決於localStorage key是否為真。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM