要在视图中使用的值中的响应数据 (AngularJS)
Response data in values to use in view (AngularJS)
在控制器中调用了以下服务:
//Controller
$scope.groups = CrudService.getAllGroups();
此服务returns 来自数据库的所有组。那么接下来,如下图,服务代码:
//Service (CrudService)
function getAllGroups() {
return ResService.group.query(
successResponse,
errorResponse);
}
function successResponse(resp) {
return resp;
}
/*This part doesn't work*/
function errorResponse(error) {
return function (err) {
$scope.msgError = false;
$scope.errStatus = err.status;
$scope.statusText = err.statusText;
$scope.errMsgDetail = err.data.MessageDetail;
};
}
/**************************/
//Nested Service (ResService)
return {
group: $resource(baseUrl + '/api/group/:Id', {
Id: '@Id'
}, {}),
}
如何在服务代码中看到错误响应不会在视图中调用。我分别使用来自后端响应 header 的错误消息。如果请求失败,则必须显示警告框,如以下代码所示:
<div>
<alert ng-hide="msgError" type="alert alert-danger" close="closeAlert()">
<p><b>{{ statusTitle }}</b>: <i>{{ errStatus }} - {{ statusText }}</i></p>
<p><strong>{{ msgTitle }}</strong>: <i>{{ errMsgDetail }}</i> <i>{{ msgException }}</i></p>
</alert>
</div>
有人知道我如何访问或正确定义 errorResponse
函数中的值吗?或者,是否可以在服务查询中声明?
您将对象传递给一个名为 error 的参数,但随后您将其引用为 err。这只是一个错字。
/*This part doesn't work*/
function errorResponse(error) {
return function (error) {
$scope.msgError = false;
$scope.errStatus = err.status;
$scope.statusText = err.statusText;
$scope.errMsgDetail = err.data.MessageDetail;
};
}
应该是:
/这部分不起作用/
函数错误响应(错误){
return函数(错误){
$scope.msgError = 错误;
$scope.errStatus = error.status;
$scope.statusText = error.status正文;
$scope.errMsgDetail = error.data.MessageDetail;
};
}
调用错误函数时,除了 return 另一个错误函数外,它什么都不做。另一个问题是它不知道上下文中的变量 $scope,所以你必须传递它:
$scope.groups = CrudService.getAllGroups($scope);
function getAllGroups($scope) {
return ResService.group.query(
successResponse,
errorResponse($scope));
}
function errorResponse($scope) {
return function(error) {
$scope.msgError = false;
$scope.errStatus = error.status;
$scope.statusText = error.statusText;
$scope.errMsgDetail = error.data.MessageDetail;
}
}
还有一个错字,你写的是err.
,但应该是error.
。
在控制器中调用了以下服务:
//Controller
$scope.groups = CrudService.getAllGroups();
此服务returns 来自数据库的所有组。那么接下来,如下图,服务代码:
//Service (CrudService)
function getAllGroups() {
return ResService.group.query(
successResponse,
errorResponse);
}
function successResponse(resp) {
return resp;
}
/*This part doesn't work*/
function errorResponse(error) {
return function (err) {
$scope.msgError = false;
$scope.errStatus = err.status;
$scope.statusText = err.statusText;
$scope.errMsgDetail = err.data.MessageDetail;
};
}
/**************************/
//Nested Service (ResService)
return {
group: $resource(baseUrl + '/api/group/:Id', {
Id: '@Id'
}, {}),
}
如何在服务代码中看到错误响应不会在视图中调用。我分别使用来自后端响应 header 的错误消息。如果请求失败,则必须显示警告框,如以下代码所示:
<div>
<alert ng-hide="msgError" type="alert alert-danger" close="closeAlert()">
<p><b>{{ statusTitle }}</b>: <i>{{ errStatus }} - {{ statusText }}</i></p>
<p><strong>{{ msgTitle }}</strong>: <i>{{ errMsgDetail }}</i> <i>{{ msgException }}</i></p>
</alert>
</div>
有人知道我如何访问或正确定义 errorResponse
函数中的值吗?或者,是否可以在服务查询中声明?
您将对象传递给一个名为 error 的参数,但随后您将其引用为 err。这只是一个错字。
/*This part doesn't work*/
function errorResponse(error) {
return function (error) {
$scope.msgError = false;
$scope.errStatus = err.status;
$scope.statusText = err.statusText;
$scope.errMsgDetail = err.data.MessageDetail;
};
}
应该是: /这部分不起作用/ 函数错误响应(错误){ return函数(错误){ $scope.msgError = 错误; $scope.errStatus = error.status; $scope.statusText = error.status正文; $scope.errMsgDetail = error.data.MessageDetail; }; }
调用错误函数时,除了 return 另一个错误函数外,它什么都不做。另一个问题是它不知道上下文中的变量 $scope,所以你必须传递它:
$scope.groups = CrudService.getAllGroups($scope);
function getAllGroups($scope) {
return ResService.group.query(
successResponse,
errorResponse($scope));
}
function errorResponse($scope) {
return function(error) {
$scope.msgError = false;
$scope.errStatus = error.status;
$scope.statusText = error.statusText;
$scope.errMsgDetail = error.data.MessageDetail;
}
}
还有一个错字,你写的是err.
,但应该是error.
。