У меня есть вкладки с маршрутизацией, работающие следующим образом.
Он может делать все, что вам нужно, от динамических вкладок, и на самом деле это очень просто.
- Вкладка с
ui-view
, так что он может динамически загружать шаблоны, маршрутизации
- Обновления в URL
- Истории Установить состояние
- При непосредственной навигации по маршруту с вкладками, закладка правильно помечается как
active
.
Определить вкладки с параметром в маршрутизаторе
.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'
}
})
шаблон вкладок (tabs.html) является
<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>
Что в паре с очень простым контроллером для получение текущей активной вкладки:
app.controller('TabCtrl', function($stateParams) {
this.activeTab = $stateParams.tab;
})
Это лучший ответ. Даже не утруждайтесь указателями на угловое ui-bootstrap; просто реализуйте его с помощью ngRoute. Я на самом деле просто установил [Plunk] (http://plnkr.co/1xA1r2), демонстрируя это, и собирался опубликовать свой собственный ответ, прежде чем я понял, что он такой же, как ваш. – user240515
Мне нравится этот waaay лучше, чем подход Angular UI Bootstrap. Который я не понимаю, так или иначе. Я не вижу реальной причины перестраивать Bootstrap.js в пользовательские угловые директивы. Они должны быть раздельными, чтобы использовать лучшие части как углового, так и бутстрапа. Отказ от ответственности: это чисто мое 2ct. –
Обратите внимание, что если вы перемещаетесь между вкладками, а затем переходите назад (нажмите кнопку «Назад» на клавиатуре), отображается соответствующее представление, но правильной активной вкладки нет? См. Это для решения: http://stackoverflow.com/a/25735997/410937 – atconway