2017-02-19 101 views
0

我目前正在为我的网站使用角度js前端和使用Laravel作为后端api的联系表单。 这是我作为一个领域的例子。在angularjs中拦截laravel验证错误

<div class="row"> 
    <div class="form-group col-xs-12 floating-label-form-group"> 
     <label for="title">Your Name*</label> 
     <input class="form-control" ng-model="contact_name" type="text" name="contact_name" placeholder="Your Name*"> 
     <span ng-if="errors.contact_name[0]" class="alert-danger">@{{ errors.contact_name.toString()}}</span> 
    </div> 
</div> 

这通过我的控制器进行呼叫。

$scope.processForm = function() 
{ 
    $scope.submissionSuccess = false; 
    $scope.errors = null; 
    $http({ 
     method:'POST', 
     url:'/api/post-form', 
     data:{ 
      _token: $scope._token, 
      contact_name:$scope.contact_name, 
      contact_email:$scope.contact_email, 
      phone:$scope.phone, 
      message:$scope.message 
     } 
    }).success(function(data, status, headers, config){ 

     /*CLEAR FORM FIELDS*/ 
     $scope.submissionSuccess = true; 
     $scope.contact_name = ''; 
     $scope.contact_email = ''; 
     $scope.phone = ''; 
     $scope.message = ''; 

     // SHOW SUCCESS FOR 2 SECONDS. 
     $timeout(function() { 
      $scope.submissionSuccess = false; 
     }, 2000); 

    }).error(function(error){ 
     $scope.errors = error.data; 
    }); 
} 

然后传递给我的laravel控制器。 当我将数据记录到控制台时,

对象 错误 : 对象 CONTACT_EMAIL : 阵列[1] : “是必需的联系人的电子邮件字段”。 长度 : : 数组[0] CONTACT_NAME : 阵列[1] : “联系人姓名字段是必需的。” 长度 : : 数组[0] 消息 :[1] 阵列: “是必需的消息字段”。

我将如何显示错误消息?明确说联系电子邮件字段是必需

回答

0

错误,需要联系人姓名字段的消息字段需要

I.e.它不能为空,你的数据库不接受它的空值,现在你需要从数据库中删除它所需的字段,或者你必须从前端处理,如果它是空的,然后发送一些自定义值。

如果你想在视图中显示错误,那么改变你的span

<span ng-show="errors.contact_name.length>0" class="alert-danger">@{{ errors.contact_name[1].toString()}}</span> 
+0

你好,我知道这些字段是空的。我不想将其发布到数据库/。我试图在前端显示验证错误作为跨度。所以被记录的消息我想输出它旁边的approrpiate字段。 –

+0

现在试试我已经更新了我的答案 –

0

也许你可以试试这个样子。

<span class="has-error" ng-repeat="error in errors.contact_name">{{ error }}</span> 

希望得到这个帮助。