Angularjs 如何从作用域将活动选项卡绑定到数组的最后一个元素

Angularjs 如何从作用域将活动选项卡绑定到数组的最后一个元素,angularjs,angular-ui-bootstrap,angular-ui,angular-ui-tabset,Angularjs,Angular Ui Bootstrap,Angular Ui,Angular Ui Tabset,我正在尝试将uib tabset active设置为数组的最后一个元素。然而,当我这么做的时候,uib tabset会变得疯狂,它会删除自己的选项卡。我不想拥有活动uib选项卡集的范围字段,我想使用数组长度来标识哪个选项卡应该是活动的。可能吗 <uib-tabset active="tabs.length"> <uib-tab index="$index + 1" ng-repeat="tab in tabs" heading="{{tab.title}}"

我正在尝试将uib tabset active设置为数组的最后一个元素。然而,当我这么做的时候,uib tabset会变得疯狂,它会删除自己的选项卡。我不想拥有活动uib选项卡集的范围字段,我想使用数组长度来标识哪个选项卡应该是活动的。可能吗

<uib-tabset active="tabs.length">
    <uib-tab index="$index + 1" ng-repeat="tab in tabs" heading="{{tab.title}}" 
      disable="tab.disabled">
      {{tab.content}}
    </uib-tab>
</uib-tabset>
导致意外结果,如删除自己的选项卡。 完整示例:
尝试单击第一个选项卡。

我不知道为什么,但在控制器中保存选项卡的长度似乎对我有用。希望能有帮助。 检查plnkr

angular.module'ui.bootstrap.demo',['ngAnimate','ngSanitize','ui.bootstrap']; angular.module'ui.bootstrap.demo'。控制器'TabsDemoCtrl',函数$scope,$window{ $scope.tabs=[ {title:'Dynamic title 1',content:'Dynamic content 1'}, {title:'Dynamic title 2',content:'Dynamic content 2'}, {标题:'Dynamic title 3',内容:'Dynamic content 3'}, ]; $scope.tabslenght=$scope.tabs.length; $scope.model={ 名称:“选项卡” }; }; form.tab-form-demo.tab窗格{ 利润率:20px 20px; } {{tab.content}
如果您不想为制表符长度使用另一个范围变量,则此技巧应适用于您:

<uib-tabset  ng-init="len = tabs.length" active="len">

由于我们最初需要激活最后一个选项卡,所以可以使用ng init。请通读代码,希望它对你有用

<uib-tabset ng-init="active=tabs.length" active="active">
    <uib-tab index="$index + 1" ng-repeat="tab in tabs" heading="{{tab.title}}" 
      disable="tab.disabled">
      {{tab.content}}
    </uib-tab>
  </uib-tabset>