gpt4 book ai didi

angularjs - 为什么我的 ng-click 事件会触发两次?

转载 作者:行者123 更新时间:2023-12-04 10:23:13 24 4
gpt4 key购买 nike

我正在开发一个 cordova/ionic 应用程序,目前正在我的笔记本电脑上使用 Android 模拟器对其进行测试。我有一个触发两次的 ng-click 事件。当我查看第一次执行的调用堆栈时,这是我看到的:

CreateAdController.$scope.save in create-ad-ctrl.js, line 96    JavaScript
fn in eval code.js, line 3002 JavaScript
<anonymous function> in ionic.bundle.js, line 62386 JavaScript
Scope.$eval in ionic.bundle.js, line 29158 JavaScript
Scope.$apply in ionic.bundle.js, line 29257 JavaScript
<anonymous function> in ionic.bundle.js, line 62385 JavaScript
eventHandler in ionic.bundle.js, line 16583 JavaScript
triggerMouseEvent in ionic.bundle.js, line 2948 JavaScript
tapClick in ionic.bundle.js, line 2937 JavaScript
tapTouchEnd in ionic.bundle.js, line 3064 JavaScript

第二次执行有一个略微不同的调用堆栈:

CreateAdController.$scope.save in create-ad-ctrl.js, line 96    JavaScript
fn in eval code.js, line 3002 JavaScript
<anonymous function> in ionic.bundle.js, line 62386 JavaScript
Scope.$eval in ionic.bundle.js, line 29158 JavaScript
Scope.$apply in ionic.bundle.js, line 29257 JavaScript
<anonymous function> in ionic.bundle.js, line 62385 JavaScript
eventHandler in ionic.bundle.js, line 16583 JavaScript
triggerMouseEvent in ionic.bundle.js, line 2948 JavaScript
tapClick in ionic.bundle.js, line 2937 JavaScript
tapMouseUp in ionic.bundle.js, line 3013 JavaScript

这里最显着的区别是最后一行(或执行的第一行),特别是

tapTouchEnd in ionic.bundle.js, line 3064   JavaScript

tapMouseUp in ionic.bundle.js, line 3013    JavaScript

第一个是 tapTouchEnd 事件,第二个是 tapMouseUp

有什么办法可以防止这种情况发生两次?这是因为我在我的笔记本电脑上进行测试,并且它自然地触发了 tapMouseUp 事件,因为它确实在发生吗?

郑重声明,我之前见过事件触发两次的案例,因为 Controller 会被引用两次。我可以确认在这种情况下情况并非如此。我还可以确认 ionic.bundle.js 仅被引用一次。

最佳答案

您是否在代码库中的任何地方使用了 alert()?看看this bug

你可以用cordovaDialog代替alert

关于angularjs - 为什么我的 ng-click 事件会触发两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36271392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com