包含在[]中的角度返回数组值

时间:2016-10-31 21:55:46

标签: javascript php angularjs laravel-5

我正在努力自学Angular,目前我正在处理从角度前端发送http请求的问题。

我正在成功发送POST请求,并且我也收到了正确的错误响应。返回的错误响应来自Laravel,基本上是JSON响应。

return Response::json(['message' => $validator->errors()], 422);

返回看起来像的东西,

   {
       "message": {
           "first_name": ["The first name field is required."],
           "surname": ["The surname field is required."],
           "email": ["The email field is required."],
           "school_name": ["The school name field is required."]
       }
   }

在我的角度模板中,我现在在控制器中有这个,

app.controller('signupController', function($scope, $http) {
    console.log("...signup controller initialised...");
    $scope.formData = {};
    $scope.error = "";
    $scope.processForm = function() {
        console.log($scope.formData);
        var postForm = $http.post('http://homestead.app/api/invites/create', $scope.formData);
        postForm.success(function(data, status, headers, config) {
            $scope.message = data;
        });
        postForm.error(function(data, status, headers) {
            $scope.error = data;
            console.log($scope.error);
        });
    }
});

在我的模板中,我形成了这样的条目,

<div class="form-group">
    <label for="firstName" class="is-required">First Name</label>
    <input type="text" class="form-control" id="firstName" name="first_name" ng-model="formData.firstname" ng-class="{'has-error': error.message.first_name}">
    <div class="error__block">{{ error.message.first_name }}</div>
</div>

现在出错时,表单输入会分配has-error类,但错误块显示如下内容,

  

[&#34;需要名字字段。&#34;]

当我认为它会显示出类似的东西时,

  

首字母字段是必需的

我在角度端的laravel端做错了什么?

2 个答案:

答案 0 :(得分:2)

从我看到你从laravel返回字段 first_name 字符串值的数组。这听起来不太好,不应该只是一个字符串吗?

如果没有, join first_name数组,您将从数组中的多个值中获取全名。

答案 1 :(得分:1)

我对Laravel一无所知,所以可能仍然有办法改变它,但你可以改变你的$http.success()函数:

postForm.success(function(data, status, headers, config) {
    $scope.message = data[0];
});

不是将$scope.message设置为传入数组,而是抓取数组的第一个元素并使用它(索引0)。