javascript - 谁在调用该函数?

标签 javascript angularjs angular-material

在我的应用程序中发生了一些奇怪的事情。

我的 Controller 有两个功能,一是添加选项卡,一是删除选项卡。

这是代码:

$scope.createTab = function(){
         $scope.addTab("New Tab",50,0);
         console.log($scope.mbpTabs.length);
    }

$scope.deleteTab= function (index){
        $scope.mbpTabs.splice(index,1);
    }

我省略了 addTab 的代码,因为我认为我的问题不需要它。

这是我的选项卡的结构:

   <md-tabs class="stretch-height" flex md-selected="mbpSelectedIndex" md-border-bottom md-autoselect md-dynamic-height> 
    <md-tab ng-repeat="tab in mbpTabs" md-on-select="onTabSelected(tab)">
        <md-menu context-menu>
            <div flex class="mbpTable" ng-right-click="$mdOpenContextMenu($event)">{{tab.title}}</div>
            <md-menu-content>
                <md-menu-item >
                    <md-button  ng-click="deleteTab($index)" ng-disabled="mbpTabs.lenght<=1">
                       Delete
                    </md-button>
              </md-menu-item>

            </md-menu-content>
        </md-menu>  
        <md-tab-body>
                ...
        </md-tab-body> 
    </md-tab>
    <md-tab md-on-select="createTab()">
            <md-tab-label>
                <div class="mbpTable" >+</div>
            </md-tab>               
 </md-tabs>

当我从上下文菜单中选择删除选项时,删除某些内容后会触发 createTab 函数(如浏览器调试器中所示)。我怎样才能知道它是什么?我在代码中找不到任何内容(我试图在整个项目中对 createTab 命令进行大量研究,但我无法弄清楚)。

谢谢

编辑:

按照下面的建议,这是createTab的调用堆栈:

calling stack

看来这不是我的错

编辑2:

仅当已创建新选项卡时才会发生这种情况。

编辑3:

它仅在某些条件下有效:

1) 仅当之前选择了某个选项卡且当前未选择该选项卡时,才能正确删除新选项卡(不会创建新选项卡)。

2) 仅当未创建新选项卡时,删除页面加载时创建的选项卡才有效。

我还是无法解释。

最佳答案

此处md-on-select="createTab()",删除旧选项卡后,该选项卡将被选中。您可以尝试将其绑定(bind)到另一个事件。

关于javascript - 谁在调用该函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41220601/

相关文章:

java - 如何使用java和Angular登录webapp

javascript - AngularJS 服务根作用域

根据条件隐藏组件的干净方法是什么?

javascript - Angular Material Grid 列表延迟加载

javascript - 为什么 onblur ="this.focus()"不起作用?

javascript - 为什么 javascript 允许 $ 作为函数名称?

javascript - 如何从事件处理程序触发事件触发函数而不创建无限循环?

Angularjs:输入[文本] ngChange 在值更改时触发

html - 如何在 Angular Material 中将 Tab 键设为回车键?

javascript - 我想返回一个对象,但我得到一个字符串