使用Angular UI Bootstrap在动态创建的选项卡上设置活动选项卡

沃尔坎·帕克索伊(Volkan Paksoy)

我有一个动态选项卡集,它从一个数组开始生成一个选项卡,该数组开始为空白。当我将新项目添加到数组时,它将显示为新选项卡。我希望最后添加的选项卡是活动的。每次将项目添加到数组时,我都会设置活动索引

HTML:

<uib-tabset active="activeTabIndex">
    <uib-tab ng-repeat="tab in tabs" heading="{{tab.title}}">Some content</uib-tab>
</uib-tabset>

JavaScript:

$scope.activeTabIndex = 0
$scope.tabs = [];

$scope.addTab = function() {
    var newTab = {  title: 'Tab ' + ($scope.tabs.length + 1) };
    $scope.tabs.push(newTab); 
    $scope.activeTabIndex = ($scope.tabs.length - 1);
    console.log($scope.activeTabIndex);
};

这是演示的完整源代码的Plunk:https ://plnkr.co/edit/TX6ek4R62AfM2zUXcoC3?p=preview

问题是它似乎只能使用奇数个选项卡。这就是我的意思:

初始加载时看起来像这样:

在此处输入图片说明

添加新标签后,它会正确显示活动标签:

在此处输入图片说明

当我添加另一个时,什么也没有选择,并且activeTabIndex变量变为未定义:

在此处输入图片说明

在第三个,它又开始工作了:

在此处输入图片说明

因此,即使是活动索引号(0、2)也可以正常工作。但是以某种方式代替Acitve Index:1显示为空白,并且未设置活动选项卡。我将变量写入控制台,它可以正确显示所有值。

欢迎任何帮助/指针/想法。

谢谢。

huan feng

根据文档

active(默认值:第一个标签的索引)-标签的有效索引。将其设置为现有的标签索引将使该标签处于活动状态。

确保tabs数组包含活动数组,我认为您应该在其中添加$ timeout:

      $scope.addTab = function() {
        var newTab = {  title: 'Tab ' + ($scope.tabs.length + 1) };
        $scope.tabs.push(newTab); 
        $timeout(function(){
          $scope.activeTabIndex = ($scope.tabs.length - 1);
        });
        console.log($scope.activeTabIndex);
      };

https://plnkr.co/edit/q4QP7zoB0HXSjn3MplE4?p=预览

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular UI Bootstrap选项卡+ ng-include

Angular Bootstrap-默认选项卡处于活动状态(动态选项卡)

使用Angular UI / Bootstrap UI隐藏选项卡标题

AngularJS和UI-Bootstrap选项卡,使用ng-class修改选项卡

UI网格在Angular-UI选项卡中消失

Angular UI选项卡的Select事件未按预期工作

Angular UI-以编程方式设置活动选项卡

Angular UI选项卡-以编程方式更改活动选项卡

Angular UI引导程序选项卡-无法使用选项卡内的按钮更改选项卡

使用UI-Bootstrap 0.11.0,Angular JS中的活动选项卡不起作用

UI Bootstrap选项卡在重新加载后保存活动选项卡

将选项卡设置为在材料ui选项卡组件中处于活动状态

如何使用ng-show / ng-hide隐藏Angular Bootstrap UI中的选项卡

具有动态控制器的Angular + ui-angular动态选项卡

Contenteditable指令不适用于Angular UI Bootstrap选项卡

angular-ui-router和angular-ui-bootstrap选项卡:内容多次加载到DOM中

在Kendo UI中动态设置当前选项卡的onload

使用jQuery UI从动态创建的选项卡中获取数据属性值

如何使用jQuery UI选项卡在表格开关选项卡中制作元素

使用ng-show时,ui-bootstrap选项卡显示不正确的选项卡内容

Angular UI-Bootstrap选项卡:未设置活动选项卡

在ui-router应用中使用选项卡,每个选项卡都没有状态

Angular和bootstrap UI选项卡均处于活动状态,以防止出现默认情况

Angular Material 2 无法设置默认活动选项卡

Angular slickgrid 不显示在动态选项卡内(ngx-bootstrap 选项卡集)

即使在活动选项卡上,Angular Material 选项卡也会变灰

在材质 ui 选项卡中使用效果来隐藏第三个选项卡

使用类的选项卡列表的活动选项卡

如何使用 Material UI 在选项卡上放置关闭按钮