0

在我的一个 Angular JS 应用程序中,我想在 ajax 调用之后验证并提交一个表单(如果它返回 1 )

所以目前我的表单提交看起来像

$scope.formSubmit=function(form,$event){
        form.$submitted = true;
        if(form.$valid==false){
            $event.preventDefault();
        }
    };

我的 AJAX 代码部分是

$scope.checkLogin=function(){
    var url=$('#site').val()+'/ajax/checkLogin/'+Math.random();
    return $http({
      method  : 'POST',
      async:   false,
      cache:   false,
      url     : url,
      data: {},
      headers : { 'Accept' : 'application/json' , 'Pragma':'no-cache'},
     })
      .success(function(data) {
           if(data.result==1)
               return true;
           else
               return false;
          })
      .error(function (data, status, headers, config) {
         location.reload();
    });
};

仅当“checkLogin”返回 true 时,我才需要进行表单验证和表单提交。即data.result==1。这样如果 data.result==1 那么它将验证表单并提交

谁能给我一个关于如何更改“$scope.formSubmit”的想法

4

1 回答 1

0

研究使用$asyncValidators

从文档:

自定义验证

此外,还有$asyncValidators处理异步验证的对象,例如$http向后端发出请求。添加到对象的函数必须返回一个resolved有效或rejected无效的承诺。正在进行的异步验证通过键存储在ngModelController.$pending中。

-- AngularJS 开发者指南 -- 自定义验证

于 2016-01-30T21:41:37.077 回答