Mam dynamiczny zestaw tabulacji, który generuje tabulacje z tablicy, która zaczyna się puste. Kiedy dodaję nowy element do tablicy, pojawia się on jako nowa karta. Chcę, aby ostatnia dodana karta była aktywną. I ustawić aktywny indeks za każdym razem dodać element do tablicyUstawianie aktywnej zakładki na dynamicznie tworzonych zakładkach z Angular UI Bootstrap
HTML:
<uib-tabset active="activeTabIndex">
<uib-tab ng-repeat="tab in tabs" heading="{{tab.title}}">Some content</uib-tab>
</uib-tabset>
JavaScript:
$scope.activeTabIndex = 0
$scope.tabs = [];
$scope.addTab = function() {
var newTab = { title: 'Tab ' + ($scope.tabs.length + 1) };
$scope.tabs.push(newTab);
$scope.activeTabIndex = ($scope.tabs.length - 1);
console.log($scope.activeTabIndex);
};
oto upadać na pełnym kodem źródłowym demo: https://plnkr.co/edit/TX6ek4R62AfM2zUXcoC3?p=preview
Problem polega na tym, że działa tylko z nieparzystą liczbą kart. Oto co mam na myśli:
Na wstępnym obciążeniem wygląda to tak:
Po dodaniu nowej karty pokazuje aktywną jedną poprawnie:
Kiedy dodaj jeszcze jedno, nic się nie wybiera i aktywna zmiennaTabIndex staje się niezdefiniowana:
A na 3. jeden zaczyna działać ponownie:
Więc nawet dla aktywnych numerów indeksowych (0, 2) działa prawidłowo. Ale jakoś zamiast Acitve Index: 1 pokazuje puste i nie ustawia aktywnej karty. Piszę zmienną do konsoli i poprawnie wyświetla wszystkie wartości.
Każda pomoc/wskazówki/pomysły są mile widziane.
Dzięki.
Dzięki. Wydaje się, że limit czasu działa, ale nadal nie może zrozumieć, dlaczego działa bez niego na pół etatu. Wszelkie komentarze na temat tego pozornie dziwnego zachowania? –
Dobre pytanie, ja też czuję się zagubiony, dlaczego działa na dziwne zakładki. –
Zadałem to pytanie na GitHub, a premier projektu odpowiedział, że podobne problemy zostały zgłoszone i nie obsługują dynamicznych kart. Wygląda na to, że ustawienie wskaźnika w limicie czasu jest oficjalnie zalecanym rozwiązaniem. Więc przyjmuję to jako odpowiedź. Ze względu na kompletność oto wątek mam odpowiedź: https://github.com/angular-ui/bootstrap/issues/611 –