AngularJS中如何使用trigger报错$digest already in progress
发布时间:2020-12-17 10:02:59 所属栏目:安全 来源:网络整理
导读:今天在使用trigger事件碰到问题: 例如我有两个按钮,button1和button2,在button2绑定了ng-click事件,现在想点击button1从而触发button2的ng-click事件。 代码中我直接用 angular.element(button2).triggerHandler(‘click‘); 控制台报错: Error: [$root
今天在使用trigger事件碰到问题: 例如我有两个按钮,button1和button2,在button2绑定了ng-click事件,现在想点击button1从而触发button2的ng-click事件。 代码中我直接用 angular.element(button2).triggerHandler(‘click‘); 控制台报错: Error: [$rootScope:inprog] $digest already in progress这是为什么呢?代码中我没有apply啊!网上查阅后在stackoverflow上发现有一国外哥们也碰到这种问题,原来不管是trigger还是triggerHandler都会触发apply,可是$digest已经运行了,此时我们就要手动停止$digest。$timeout可以达到此目的,改写代码: $timeout(function({ angular.element(button2).triggerHandler(‘click‘); }) 如果你引入了jquery,还可以这么写: $timeout(function({ $(button2).trigger(‘click‘); }) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |