目的是可以新增多個Tab,每個Tab 都是一個獨立的Component,可以自由切換頁面並保留各頁面的狀態及資料。想請教是否有類似的功能可以達到?
如下圖,點選Radio後會動態切換Component,但是Component A如果打字到一半,在切換到Component B後再回到Component A,要如何讓Component A的資料及狀態是被完整保留的?
目的是可以新增多個Tab,每個Tab 都是一個獨立的Component,可以自由切換頁面並保留各頁面的狀態及資料。想請教是否有類似的功能可以達到?
如下圖,點選Radio後會動態切換Component,但是Component A如果打字到一半,在切換到Component B後再回到Component A,要如何讓Component A的資料及狀態是被完整保留的?
先講一下我的想法,還沒去實驗過
首先每個tab的component應該是都要先載入進來,切換tab的時候只是切換顯示,而不是重新載入component,才有辦法讓你輸入的資料不被重新載入
那如果說你不想要這樣的作法,就變成必須要去記憶,每個component所輸入的資料
我也有想到這點,用selector來顯示三個Component,再依據點選的Radio來切換顯示。
但是沒辦法用ngIf的方式來做顯示/隱藏。
還在查詢有什麼方式可以載入多個Component,然後做隱藏的動作
這一個我會用 reactive form 搭配 localStorage 的方式來保存每一個 component 的輸入資料
不然就要用 hidden 了,但不建議
或是另外一種做法,所有的資料存取放在 host component, 然後 app-comp1~3 只透過 input/output 的方式來存取資料。這樣的方式,所輸入的資料就不會隨著 component 消失而不見
應該是說從Menu選單選取後會出現Tab分頁,可能點了5個不同選單就開啟5個頁面,希望這些頁面可以獨立運作不影響彼此。所以才會想說Component是否可以各別出現,然後點選Tab做切換。
3 個想法
總算找到比較符合現況的方法了,只要加上[hidden]="true"就可以達到預期結果了!!
這樣也能同時達到Lazy loading的效果。
只是同時載入的Component對router會不會造成影響,或者沒辦法使用router params就還要在實驗了
HTML
Result
感謝各位大大提供的意見!!