Derzeit arbeite ich an einem Projekt, das dynamische Registerkarten benötigt. Ich benutze eckige Material-Registerkarten für diesen Zweck und benutze ui-router state und named view concept, um den Inhalt der Registerkarten dynamisch zu laden.eckiges Material Dynamische mdTabs und ui-router namens view und states
Für z.B .:
<!-- 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>
Tabs hinzugefügt werden wie:
vm.tabs = [{
title: 'Tab-A',
state: 'mainState.tabStateA',
viewName: 'tabA'
}, {
title: 'Tab-B',
state: 'mainState.tabStateB',
viewName: 'tabB'
}];
Sie einen Blick auf diese CodePen für die Beispiel-Implementierung erfolgen kann.
Hintergrund: Immer wenn ich die Registerkarten ändere, ändere ich den Zustand und lade den Inhalt. Dieser Status kann weitere n-Ebenen von verschachtelten Zuständen enthalten, die auch dynamisch geladen werden können. Die Registerkarten können dynamisch hinzugefügt oder entfernt werden.
Problem: Meine Anwendung kann theoretisch unbegrenzt Registerkarten haben und das Problem ist, dass, wann immer ich die Registerkarten alle Inhalte immer wieder laden, was die UX verschlechtert, da die Registerkarten in jedem möglichen Zustand sein könnten (UI kann sich ändern) basierend auf der verschachtelten Ebene des Inhalts).
Frage: Können wir etwas wie tun, wie ein Tab geladen wird, sobald es zwischengespeichert werden sollte, und so immer wenn wir zu demselben Zustand zurückkehren, sollte es nicht wieder laden. Und wenn in Zukunft die Registerkarte erneut geladen werden soll, können wir auch eine Logik bereitstellen, um dies zu tun. Ich weiß, dass jemand ähnliche Probleme gehabt haben muss und nur aus Neugier stelle ich diese Frage.
Haben Sie das jemals herausgefunden? –
@MikeFeltman Ich habe und ich habe das als Antwort hinzugefügt. – Gaurav