【发布时间】:2018-05-27 09:12:30
【问题描述】:
我目前正在使用 AngularJS 和使用 SlimPHP 的可消费 API 做一个 Web 应用程序。
当我注册用户时,我需要使用 GET 方法进行检查。根据这个方法的返回,我应该运行$event.preventDefault()还是不运行。
AngularJS的代码如下:
$scope.checkEmails = function(e){
var req = $http.get(url + 'adv/register/check?email=' + $scope.email).then(function(response){
if(response.data === true) {
e.preventDefault()
}
})
}
HTML 按钮是这样的:
<button type="submit" class="btn btn-alt-success" ng-click="checkEmails($event)">
问题是,当我尝试执行e.preventDefault() 时,$http 调用范围内的对象 $event 未定义。
所以,我如何在 $http 调用中传递这个对象,或者我如何从 $http 调用的范围之外获取值,以便在外部进行检查来电。
谢谢!
【问题讨论】:
-
您能否修改plnkr.co/edit/RHPyWhP2Eql7DopXDCBr?p=preview 并用您要查找的内容更新问题。我没有收到任何此类错误。
-
我也试试这个解决方案。就我而言,
e.preventDeafult()不会停止提交。 -
您需要创建一个 plunkr 以获得您的解决方案。告诉我你的写作方式和你的期望。如果没有演示代码,我想我将无法做到,因为 Nandita 已经为您提供了一些方法。比在黑暗中扔飞镖更好地看到你在做什么:)
-
考虑使用
$asyncValidators异步验证电子邮件。如需更多信息,请参阅AngularJS Developer Guide - Custom Validation。 -
另一种方法是在表单元素上使用
ng-submit。有关详细信息,请参阅AngularJS<form>directive - Submitting a form and preventing the default action。
标签: javascript angularjs events