Angular + bootstrap-ui,检查当前标签是否已经激活

时间:2015-04-01 17:09:31

标签: javascript angularjs angular-ui-bootstrap

我正在将一个函数挂钩到选项卡上,单击以从服务器调用某些数据。当我单击该特定选项卡时,我会触发它,但是我希望它摆脱已经在该选项卡上并点击它的某个实例 - 并且再次触发服务器(不需要)。我正在使用angular + angular-bootstrap-ui。

所以我试图在选项卡本身上挂钩函数以检查是否已经处于活动状态,但是一旦触发它的ng-click,它就已被设置为活动状态。所以无论何时点击它都会返回活动状态。我需要某种方式来检查我是否已经在该标签上。这是我尝试的内容

   <tabset>
{{tabs.active}}
    <tab heading="Tree" >

    </tab>
    <tab heading="XML" active="tabs.active" ng-click="checkTab(tabs.active)">


    </tab>
</tabset>

然后在控制器中

  $scope.checkTab = function(check){
        console.log(check);

       }

所以,无论如何,这总是会返回true,因为在单击触发之前,.active似乎设置为true。有没有办法解决?谢谢!

更新:小提琴 - https://jsfiddle.net/7ognp2nj/2/

1 个答案:

答案 0 :(得分:4)

我建议使用select代替ng-click。像这样:

    <tab heading="Tree" select="checkTab('tab 1 selected')">
       tab1
    </tab>
    <tab heading="XML" select="checkTab('tab 2 selected')">
       tab2
    </tab>

单击活动选项卡时不会调用CheckTab。单击非活动选项卡时会运行它。第一次显示选项卡时,它将执行一次而不会单击。但它看起来像是期望的行为。