如何从 AngularJS 中的服务获取错误消息?
How getting the ErrorMessage from Service in AngularJS?
我不知道如何从服务访问错误消息。我正在使用 WebAPI2 和 AngularJS.
控制器:
testApp.controller('ModalCtrl', ['$log', '$scope', '$modalInstance', '$rootScope', 'CrudService',
function ($log, $scope, $modalInstance, $rootScope, CrudService) {
$scope.updateItem = function (updateItem) {
CrudService.update(updateItem)
.success(...)
.error(function (data) { //doesn't work: CrudService.update(...) is undefined
$scope.dataError = data.ModelState
});
$scope.ok();
}
服务:
testApp.factory('CrudService', ['$log', 'resService',
function ($log, resService) {
return {
...
update: function (updateItem) {
updateItem.$update().then(function (response) {
//SUCCESS MESSAGE definieren
}, function (response) {
$log.info('Update ERR:', response.data.ModelState); //Here I'm getting the error messages
var dataError = [];
dataError = response.data.ModelState; //How can I use this in the Ctrl?
});
},
...
资源服务:
return {
name: $resource(baseUrl + '/api/name/:Id', {
Id: '@Id'
}, {
'update': {
method: 'PUT'
}
}),
我想使用变量 "dataError" 作为 Ctrl 中的 $scope。我该怎么做?
return {
...
update: function (updateItem) {
return updateItem.$update();
},
$scope.updateItem = function (updateItem) {
CrudService.update(updateItem).then(
function(resp){
},
function(error){
$scope.dataError = error.data.ModelState;
}
);
}
更新
Factory
(与服务不同)不会自动 returning 某些东西。
你需要 return 那样。 (或者 return 你的函数包含另一个 return)
testApp.factory('CrudService', ['$log', 'resService',
return {
...
update: function (updateItem) {
updateItem.$update().then(function (response) {
//SUCCESS MESSAGE definieren
}, function (response) {
$log.info('Update ERR:', response.data.ModelState); //Here I'm getting the error messages
var dataError = [];
dataError = response.data.ModelState; //How can I use this in the Ctrl?
});
},
...
我不知道如何从服务访问错误消息。我正在使用 WebAPI2 和 AngularJS.
控制器:
testApp.controller('ModalCtrl', ['$log', '$scope', '$modalInstance', '$rootScope', 'CrudService',
function ($log, $scope, $modalInstance, $rootScope, CrudService) {
$scope.updateItem = function (updateItem) {
CrudService.update(updateItem)
.success(...)
.error(function (data) { //doesn't work: CrudService.update(...) is undefined
$scope.dataError = data.ModelState
});
$scope.ok();
}
服务:
testApp.factory('CrudService', ['$log', 'resService',
function ($log, resService) {
return {
...
update: function (updateItem) {
updateItem.$update().then(function (response) {
//SUCCESS MESSAGE definieren
}, function (response) {
$log.info('Update ERR:', response.data.ModelState); //Here I'm getting the error messages
var dataError = [];
dataError = response.data.ModelState; //How can I use this in the Ctrl?
});
},
...
资源服务:
return {
name: $resource(baseUrl + '/api/name/:Id', {
Id: '@Id'
}, {
'update': {
method: 'PUT'
}
}),
我想使用变量 "dataError" 作为 Ctrl 中的 $scope。我该怎么做?
return {
...
update: function (updateItem) {
return updateItem.$update();
},
$scope.updateItem = function (updateItem) {
CrudService.update(updateItem).then(
function(resp){
},
function(error){
$scope.dataError = error.data.ModelState;
}
);
}
更新
Factory
(与服务不同)不会自动 returning 某些东西。
你需要 return 那样。 (或者 return 你的函数包含另一个 return)
testApp.factory('CrudService', ['$log', 'resService',
return {
...
update: function (updateItem) {
updateItem.$update().then(function (response) {
//SUCCESS MESSAGE definieren
}, function (response) {
$log.info('Update ERR:', response.data.ModelState); //Here I'm getting the error messages
var dataError = [];
dataError = response.data.ModelState; //How can I use this in the Ctrl?
});
},
...