0

押されたときにタブ配列に新しいタブを追加する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同じ。

アイデアはありますか?

4

2 に答える 2