В настоящее время я работаю над проектом с требованием динамических вкладок. Для этого я использую вкладки угловых материалов, а также использую состояние ui-router и названную концепцию представления для динамического загрузки содержимого вкладок.угловой материал Динамический mdTabs и ui-router с именем и состояниями
Для .: например
<!-- 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, поскольку вкладки могут быть в любом из возможных состояний (пользовательский интерфейс может меняться основанный на вложенном уровне контента).
Вопрос: Можем ли мы что-то сделать, поскольку вкладка загружается после ее кэширования, и поэтому всякий раз, когда мы возвращаемся к тому же состоянию, он не должен снова загружаться. И, если в будущем вкладка должна быть загружена снова, мы также можем предложить некоторую логику для этого. Я знаю, что у кого-то, должно быть, была аналогичная проблема, и я просто из любопытства задаю этот вопрос.
Вы когда-нибудь это выясняли? –
@MikeFeltman Я сделал, и я добавил это как ответ. – Gaurav