gpt4 book ai didi

javascript - $ionicPopup : e. preventDefault() 被忽略

转载 作者:行者123 更新时间:2023-11-29 21:25:35 25 4
gpt4 key购买 nike

我将以下代码用于一些同时使用 $ionicPopup 和 Firebase 的验证内容:

onTap: function(e) {
firebase.auth().applyActionCode($scope.data.emailcnfrm)
.then(function() {
return $scope.data.emailcnfrm;
},
function(error) {
alert("wrong code");
e.preventDefault();
});
}

但是在出现错误的情况下,在我收到“错误代码”警报后,弹出窗口将关闭,因为 e.preventDefault(); 已被忽略。

那么我的代码究竟有什么问题呢?我该如何解决这个问题?

最佳答案

您对 firebase.auth().applyActionCode 的调用是异步的,并且 e.preventDefault 将在错误回调中被异步调用。这发生在用户已经调用onTap 之后,因此e.preventDefault 不会有任何效果。

编辑(建议修复)

要修复它,您可以将异步逻辑与 onTap 方法分开:

var myPopup = $ionicPopup.show({
onTap: function(e) {
// always keep the popup open, because we'll decide when to close it later
e.preventDefault();
}
});

myPopup.then(function(res) {
firebase.auth().applyActionCode($scope.data.emailcnfrm)
.then(function() {
// if successful, imperatively close the popup
myPopup.close();
}, function(err) {
// log the error, or something
});
});

关于javascript - $ionicPopup : e. preventDefault() 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37505089/

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