Angular Apply已在进行中

时间:2016-05-12 17:28:50

标签: javascript angularjs

我正在使用名为intro.js的角度js插件。它可以找到here。我想要做的就是当用户点击演示按钮时打开一个下拉列表,这样我就可以显示下拉项目的一些介绍步骤。这是我的HTML:

<body ng-controller="MainCtrl as ctrl">
    <div ng-intro-options="ctrl.IntroOptions"
         ng-intro-method="ctrl.CallMe">
            <div class="container">
                <button class="btn btn-success" 
                ng-click="ctrl.startHelp()">Help</button>
            </div>
    </div>
</body>

我的JS:

MainCtrl.prototype.startHelp = function() {
    var _this = this;
    angular.element('#drop-down-button').trigger('click');
    _this.CallMe();
};

我也试过

angular.element('#drop-down-button').click();

但同样的错误。如果我删除angular.element行,介绍工作正常。但是,包括那个,我得this error。知道怎么解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我只需要在超时内包装调用。

MainCtrl.prototype.startHelp = function() {
    var _this = this;
    _this.$timeout(function() {
        angular.element('#drop-down-button').trigger('click');
    }, 0, false);
    _this.CallMe();
};