Ich habe einen Code, der eine Schaltfläche mit einem ng-klick enthält, die, wenn gedrückt wird, eine neue Registerkarte zum Tabs-Array hinzufügt.AngularJS - Aktives Tabset setzen nach dem Löschen irgendwas
<div class="btn btn-primary" ng-click="add()">Add</div>
$scope.add = function()
{
$scope.tabs.push({heading: 'new', content: 'ddddddd'});
$timeout(function()
{
$scope.active = $scope.tabs.length;
});
}
Dann wird das Array gefüllt und showd in der Ansicht:
<uib-tabset active="active">
<uib-tab ng-repeat="tab in tabs" index="$index + 1">
<uib-tab-heading>{{ tab.heading }} - <a ng-click="remove($index)">remove</a></uib-tab-heading>
{{tab.content}}
</uib-tab>
</uib-tabset>
Auch jeder Lasche eine Link Entfernen, die diese Funktion aufruft:
$scope.remove = function(index)
{
$scope.tabs.splice(index, 1);
$scope.active = $scope.tabs.length;
}
Das Problem ist, dass Wenn ich eine Registerkarte lösche, die nicht die zuletzt hinzugefügte Registerkarte ist, sind die aktive Registerkarte und der Index nicht identisch. Es gibt eine Plunkr, um das Problem zu demonstrieren: http://plnkr.co/edit/02Lll7oPYyvAxcKu5GkK?p=preview Wie Sie sehen können, wenn eine Registerkarte (nicht die letzte) gelöscht wird, sind "Tabs" und "Index" Variablen nicht identisch.
Irgendwelche Ideen bitte?
Welche Registerkarte Sie wollen aktiv setzen, wenn jede gelöscht? –
Wenn ich eine Registerkarte löschen möchte, möchte ich keine neue aktive Registerkarte festlegen, sondern einfach die zuletzt aktive Registerkarte beibehalten. Das Problem kommt, wenn nach dem Löschen eines Tabs ich ein neues Tab hinzufügen. In diesem Moment möchte ich diese neue Registerkarte aktivieren, aber ich erhalte keine Ergebnisse. –