目前,我正在处理一个需要动态选项卡的项目。为此,我使用角度材质选项卡,并且还使用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