Ich habe Tabs mit Routing die folgende Art und Weise zu arbeiten.
Es ist in der Lage, alles, was Sie wollen, von dynamischen Tabs, und es ist eigentlich sehr einfach.
- Tabs mit einem
ui-view
, so dass es dynamisch Vorlagen laden kann,
- Update-Routing in URL
- Sets Geschichte Zustand
- Wenn direkt mit einer Registerkartenansicht auf eine Route navigieren, die richtigen Registerkarte markiert als
active
.
Definieren Sie die Registerkarten mit einem Parameter in Ihrem Router
.state('app.tabs', {
url : '/tabs',
template : template/tabs.html,
})
.state('app.tabs.tab1', {
url : '/tab1',
templateUrl : 'template/tab1.html',
params : {
tab : 'tab1'
}
})
.state('app.visitors.browser.analytics', {
url : '/tab1',
templateUrl : 'template/tab2.html',
params : {
tab : 'tab2'
}
})
Die Registerkarten Vorlage (tabs.html) ist
<div ng-controller="TabCtrl as $tabs">
<uib-tabset active="$tabs.activeTab">
<uib-tab heading="This is tab 1" index="'tab1'" ui-sref="app.tabs.tab1"></uib-tab>
<uib-tab heading="This is tab 2" index="'tab2'" ui-sref="app.tabs.tab2"></uib-tab>
</uib-tabset>
<div ui-view></div>
</div>
, die mit einem sehr einfachen Controller gepaart ist für Erhalten der aktuellen aktiven Registerkarte:
app.controller('TabCtrl', function($stateParams) {
this.activeTab = $stateParams.tab;
})
Dies ist die beste Antwort. Machen Sie sich nicht einmal mit den eckigen-ui-Bootstrap-Tab-Direktiven auf; Implementiere es einfach mit ngRoute. Ich habe gerade einen [Plunk] (http://plnr.co/1xA1r2) aufgebaut, der es demonstrierte, und wollte gerade meine eigene Antwort posten, bevor ich merkte, dass es genauso war wie deine. – user240515
Ich mag das waayay besser als der Angular UI Bootstrap Ansatz. Was ich sowieso nicht verstehe, btw. Ich sehe keinen wirklichen Grund, Bootstrap.js in benutzerdefinierten eckigen Anweisungen neu zu erstellen. Diese müssen getrennt sein, um die besten Teile von Winkel- und Bootstrap zu verwenden. Disclaimer: das ist mein 2ct. –
Beachten Sie im Plunk wie, wenn Sie zwischen Tabs navigieren und dann zurück navigieren (drücken Sie die Zurück-Taste auf der Tastatur), die richtige Ansicht wird gerendert, aber die richtige aktive Registerkarte ist nicht? Sehen Sie dies für eine Lösung: http://StackOverflow.com/a/25735997/410937 – atconway