【发布时间】:2014-06-21 04:44:31
【问题描述】:
我有一个内置在 Laravel 中的 API,它以如下格式返回 JSON:
{
"data":{
"errors":{
"username":"The username has already been taken.",
"email":"The email has already been taken."
}
},
"success":true,
"status":400
}
在这种情况下,我正在尝试使用已经存在的用户名和电子邮件地址创建用户。这是我在控制器中使用的 Angular $resource 代码:
var user = new User({
username: $scope.user.username,
email: $scope.user.email,
password: $scope.user.password
});
var response = user.$save(function(data) {
console.log(data);
}, function(data) {
if (data.status === 400) {
angular.forEach(data.data.data.errors, function(error) {
console.log(error);
});
}
});
所以这是在向 API 上的/users 发送一个 POST 请求,如果它返回一个非 200 状态代码,它会检查它是否是一个 400 代码,这意味着验证错误和 console.log'荷兰国际集团的那些错误消息。果然,我得到了错误信息输出到控制台。
我想知道的是,是否有比data.data.data.errors 更好的方法来访问错误消息。由于 API 将响应数据包装在 data 字段中,并且 Angular 返回请求的 $resource 而不是实际的服务器响应,因此会导致用于获取错误消息的属性数量相当难看。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: javascript angularjs laravel