【问题标题】:Angular UI - set active tab programmaticallyAngular UI - 以编程方式设置活动选项卡
【发布时间】:2018-04-02 22:53:06
【问题描述】:

我在这段代码中使用 AngularUI:

<uib-tabset type="pills">
    <uib-tab heading="Tab 1">Tab 1 content</uib-tab>
    <uib-tab heading="Tab 2">Tab 2 content</uib-tab>
</uib-tabset>

我想以编程方式从我的角度控制器代码中更改当前的活动标签。例如,选择选项卡“2”以激活。

如何做到这一点?

【问题讨论】:

  • 您是否尝试为每个选项卡提供一个 ID,然后将焦点放在它上面?
  • 我想过这个。在我看来,在处理 AngularJS(可能是 JQuery 的好方法)时,这是一种错误的方法。我错了吗?
  • 您是否尝试过查看文档?有一个使用外部按钮单击设置特定选项卡的示例
  • Ashwani 建议的解决方案是使用索引,相当于给出ID。在这两种情况下,您都可以使用 Angular 的功能生成 ID/索引。

标签: angularjs angular-ui-bootstrap angular-ui angular-ui-tabset


【解决方案1】:

您需要在 ui-tabset 上使用 active 属性。 然后,您需要在每个选项卡上都有索引才能从外部上下文中工作。

<uib-tabset type="pills" active="active">
    <uib-tab heading="Tab 1" index="0">Tab 1 content</uib-tab>
    <uib-tab heading="Tab 2" index="1">Tab 2 content</uib-tab>
</uib-tabset>

查看此工作 plnkr: Working Plnkr

【讨论】:

【解决方案2】:

我遇到了同样的问题,answer 帮助我解决了问题。

我在作用域中使用了两个变量:$scope.showTabsInView$scope.activeTabIndex

默认值为:

$scope.showTabsInView = false;
$scope.activeTabIndex = 0;

首先,我加载了我的dynamic tabs,然后我指定了activeTabIndex 的值。然后我把showTabsInView的值改成了true。

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

如果您的情况没有那么复杂,您可以直接忽略dynamic tabs$scope.showTabsInView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-09
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多