押されたときにタブ配列に新しいタブを追加するng-click付きのボタンを含むコードがあります。
<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;
});
}
次に、配列が作成され、ビューに表示されます。
<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>
また、各タブには、この関数を呼び出す削除リンクがあります。
$scope.remove = function(index)
{
$scope.tabs.splice(index, 1);
$scope.active = $scope.tabs.length;
}
問題は、最後に追加されたタブではないタブを削除すると、アクティブなタブとインデックスが同じではないことです。問題を示す plunkr があります: http://plnkr.co/edit/02Lll7oPYyvAxcKu5GkK?p=preview同じ。
アイデアはありますか?