Angular ui-bootstrap with ng-repeat:如果没有标签,则不会选择新标签

Angular ui-bootstrap with ng-repeat: if there's no tabs, new tab isn't selected

这里是 link 来演示我的问题:http://codepen.io/pietrofxq/pen/ZLLJdr?editors=1010

单击 "remove tabs",然后单击 "add tab"

问题:我用 ng-repeat 循环显示标签。但是有时数组中没有项目,当我添加一个选项卡回来时,我希望这个选项卡已经被选中,因为它是选项卡数组中唯一的一个。现在的行为是我必须在选项卡中单击 angular 才能知道该选项卡已被选中。当我将它添加到数组中时,如何才能选中该选项卡?

找到一个肮脏的 hack 来让它工作。

我有多个选项卡,所以我需要跟踪每个选项卡:

$scope.tabs = {
  tabOne: 0,
  tabTwo: 0
}

<uib-tabset active="tabs.tabOne"></uib-tabset>
<uib-tabset active="tabs.tabTwo"></uib-tabset>

当数组为空并且我又添加了一个选项卡时,我必须在 $timeout 调用中重置值:

$scope.$watch("items", function() {
 $timeout(function() {
    for (var prop in $scope.tabs)
      $scope.tabs[prop] = 0 
  })
}