我正在尝试使用选项卡指令 uib-tabset
内的按钮更改事件选项卡,但该按钮仅在此指令之外工作。
我做错了什么?
代码如下:
<button type="button" class="btn btn-default btn-sm" ng-click="active = 0">Select first tab - exterior button</button>
<div class="tabs-container">
<uib-tabset active="active">
<uib-tab index="0" heading="tab one">
tab one
</uib-tab>
<uib-tab index="1" heading="tab two">
tab two
<button type="button" class="btn btn-default btn-sm" ng-click="active = 0">Select first tab - internal button</button>
</uib-tab>
<uib-tab index="2" heading="tab three">
tab three
</uib-tab>
</uib-tabset>
</div>
最佳答案
在您的情况下,
ng-click
在 uib-tab 指令中尝试写入外部范围原始变量,但创建具有相同名称的局部变量( active) 在本地范围内,从而断开与外部范围的连接。最简单的方法是将 $parent.$parent 添加到您的内部点击:
ng-click="$parent.$parent.active = 0"
它将到达正确的外部作用域(外部作用域 -> uib-tabset -> uib-tab),然后修改其变量,
另一个更好的解决方案是在父子作用域之间交互时使用对象并修改其属性(例如model.active):
<button type="button"
class="btn btn-default btn-sm"
ng-click="model.active = 0">
Select first tab - exterior button
</button>
<div class="tabs-container">
<uib-tabset active="model.active">
<uib-tab index="0" heading="tab one">
tab one
</uib-tab>
<uib-tab index="1" heading="tab two">
tab two
<button type="button"
class="btn btn-default btn-sm"
ng-click="model.active = 0">
Select first tab - internal button
</button>
</uib-tab>
<uib-tab index="2" heading="tab three">
tab three
</uib-tab>
</uib-tabset>
</div>
关于angularjs - Angular UI 引导选项卡 - 无法使用选项卡内的按钮更改选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39860391/