我正在将一个函数挂钩到选项卡上,单击以从服务器调用某些数据。当我单击该特定选项卡时,我会触发它,但是我希望它摆脱已经在该选项卡上并点击它的某个实例 - 并且再次触发服务器(不需要)。我正在使用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/
答案 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。单击非活动选项卡时会运行它。第一次显示选项卡时,它将执行一次而不会单击。但它看起来像是期望的行为。