目前,我正在處理一個需要動態選項卡的項目。爲此,我使用角度材質選項卡,並且還使用ui-router狀態和命名視圖概念來動態加載選項卡的內容。角材料動態mdTabs和UI路由器命名的視圖和狀態
對於例如爲:
<!-- mdTabs -->
<md-tabs md-autoselect>
<!-- mdTab -->
<md-tab ng-repeat="tab in home.tabs" label="{{tab.title}}" md-on-select="home.selectTab(tab)">
<md-tab-body>
<div ui-view="{{tab.viewName}}"></div>
</md-tab-body>
</md-tab>
</md-tabs>
選項卡中添加,如:
vm.tabs = [{
title: 'Tab-A',
state: 'mainState.tabStateA',
viewName: 'tabA'
}, {
title: 'Tab-B',
state: 'mainState.tabStateB',
viewName: 'tabB'
}];
你可以看看這個CodePen的示例實現。
背景: 每當我改變標籤,我改變狀態並加載內容。該狀態可以進一步具有其他n級嵌套狀態,也可以動態加載;這些選項卡可以動態添加或刪除。
問題:我的應用程序理論上可以有無限的選項卡,問題是每當切換選項卡時,所有內容都會一次又一次地加載,這會惡化UX,因爲選項卡可能處於任何可能的狀態(UI可能會更改基於內容的嵌套級別)。
問題:我們可以做一些類似的事情,因爲一旦標籤被加載一次就應該被緩存,所以每當我們回到相同的狀態時它不應該再次加載。而且,如果將來該標籤應該再次加載,我們可以提供一些邏輯來做到這一點。我知道,有人必須有類似的問題,只是出於好奇心,我發佈這個問題。
你有沒有想過這個? –
@MikeFeltman我做了,我已經添加了這個答案。 – Gaurav