angularjs - Angular UI 引导选项卡 - 无法使用选项卡内的按钮更改选项卡

标签 angularjs angular-ui-bootstrap angular-ui-bootstrap-tab

我正在尝试使用选项卡指令 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-clickuib-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/

相关文章:

javascript - 显示 API 返回的 PDF 文档

javascript - Angular UI Tab 的 Select 事件没有按预期工作

javascript - 如何使用 AngularUI Bootstrap Modal 获取 AngularJS 中 $Scope 的字段

javascript - 如何为 Angular Bootstrap 绑定(bind) bs-datepicker 指令的选择事件?

css - ui bootstrap 选项卡边框

css - Angular-ui-bootstrap-tabs 动画过渡进入但不退出

javascript - 从 Polymer 1.0 自定义元素调用共享服务或库

javascript - API请求状态200不可访问

javascript - Angular - 动态组件生成

javascript - AngularJS、UI Bootstrap 的选项卡和数据表