【问题标题】:how to set active on angularjs bootstrap tab with static content如何在具有静态内容的 angularjs 引导选项卡上设置为活动状态
【发布时间】:2013-09-30 21:35:48
【问题描述】:

我正在使用 Angular Bootstrap UI 来显示带有静态内容的标签集。我包含的引导脚本是 ui-bootstrap-tpls-0.6.0.min.js。

这是我的标记:

<tabset>
    <tab ng-show="$parent.hideme" ng-class="{active:$parent.hideme}">
        <tab-heading>
            tab1
        </tab-heading>
        <div>
            tab content 1
        </div>
    </tab>
    <tab ng-hide="$parent.hideme" ng-class="{active:!$parent.hideme}">
        <tab-heading>
            tab2
        </tab-heading>
        <div>
            tab content 2
        </div>
    </tab>
</tabset>

这里是控制器

function myController($scope) {
    $scope.hideme = false;
});

如果我没有在选项卡上应用 ng-class,它会很好地工作,除了当第一个选项卡隐藏和第二个选项卡显示 ($scope.hideme = false) 时,第一个选项卡的内容将显示 avtive。

如果我添加了 ng-class,它会导致 angularjs 出错。错误:[$parse:syntax]http://errors.angularjs.org/undefined/$parse/syntax?p0=%7B&p1=is%20an%20unexpected%20token&p2=16&p3=%7Bactive%3Afalse%7D%20%7Bactive%3A%20active%2C%20disabled% 3A%20disabled%7D&p4=%7Bactive%3A%20active%2C%20disabled%3A%20disabled%7D

激活特定选项卡的正确方法(或正确语法)是什么?

【问题讨论】:

  • 不确定为什么要使用 $parent....能否包含更多 HTML 和 Angular 代码?

标签: twitter-bootstrap angularjs angularjs-directive


【解决方案1】:

我建议不要尝试执行显示/隐藏逻辑。我也对此感到沮丧,因为UI Bootstrap Tab documentation 仅显示通过与 ng-repeat 绑定创建的选项卡的导航。

但我相信您可以将 tabset 指令中的选项卡引用为 $parentScope.tabs。使用$parent.tabs[2].select() 可以实现如此简单的导航:

<tabset>
  <tab heading="Tab 1">
    <button class="btn btn-success" ng-click="$parent.tabs[2].select()">Go to Tab 3</button>
  </tab>
  <tab heading="Tab 2">
    <p>Tab 2 contents</p>
  </tab>
  <tab heading="Tab 3">
    <button class="btn btn-danger" ng-click="$parent.tabs[0].select()">Back to Tab 1</button>
  </tab>
</tabset>

如果有帮助,我有一个working Plunker example

【讨论】:

  • 嗨..感谢您的回答...这适用于旧版本的引导程序..而在当前版本中不是..
  • @Nisar,你使用的是哪个版本的 bootstrap、angular 和 ui-bootstrap?
  • 我正在使用 (0.14.3) 版本的 ui-bootstrap.. 我也做了一个 Plunker ...plnkr.co/edit/kzg9ITOiubLuZwkw3TmY?p=preview
  • 我认为您可能在 Angular 1.2.x 和 ui-bootstrap 0.14.3 之间存在版本不兼容性,我认为这仅适用于 Angular 1.3.x 及更高版本(请参阅Milestones)。我做了一个modified Plunk with the updated version,它似乎又可以工作了。
  • 有人知道如何以编程方式激活标签吗?例如点击按钮??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多