我正在尝试使用此link
之后的angularjs客户端来使用我的春季休息服务创建,更新和阅读部件正在运行。当我尝试删除时,它显示此错误。
错误:[$ resource:badcfg]操作的资源配置出错
get
。包含一个对象但得到一个数组的预期响应 (请求:获取http://localhost:8080/SpringRestExample/employee)
为什么我在DELETE方法中获取GET请求?
employee_service.js
'use strict';
App.factory('Employee', ['$resource', function ($resource) {
return $resource(
'http://localhost:8080/SpringRestExample/employee/:id',
{id: '@employeeId'},
{
update: {
method: 'PUT'
}
}
);
}]);
employee_controller.js
'use strict';
App.controller('EmployeeController', ['$scope', 'Employee', function($scope, Employee) {
var self = this;
self.employee= new Employee();
self.employees=[];
self.fetchAllEmployees = function(){
self.employees = Employee.query();
};
self.createEmployee = function(){
self.employee.$save(function(){
self.fetchAllEmployees();
});
};
self.updateEmployee = function(){
self.employee.$update(function(){
self.fetchAllEmployees();
});
};
self.deleteEmployee = function(identity){
var employee = Employee.get({employeeId:identity}, function() {
employee.$delete(function(){
console.log('Deleting employee with id ', identity);
self.fetchAllEmployees();
});
});
};
self.fetchAllEmployees();
self.submit = function() {
if(self.employee.employeeId==null){
console.log('Saving New Employee', self.employee);
self.createEmployee();
}else{
console.log('Updating employee with id ', self.employee.employeeId);
self.updateEmployee();
console.log('Employee updated with id ', self.employee.employeeId);
}
self.reset();
};
self.edit = function(employeeId){
console.log('id to be edited', employeeId);
for(var i = 0; i < self.employees.length; i++){
if(self.employees[i].employeeId === employeeId) {
self.employee = angular.copy(self.employees[i]);
break;
}
}
};
self.remove = function(employeeId){
console.log('id to be deleted', employeeId);
if(self.employee.employeeId === employeeId) {//If it is the one shown on screen, reset screen
self.reset();
}
self.deleteEmployee(employeeId);
};
self.reset = function(){
self.employee= new Employee();
$scope.myForm.$setPristine(); //reset Form
};
}]);
答案 0 :(得分:1)
您的问题可能是在删除员工之前致电Employee.get({employeeId:identity}, ...)
。这将在删除之前加载员工,它将在'http://localhost:8080/SpringRestExample/employee/:id'
上执行GET请求。
要使此查询正常运行,您需要提供尚未完成的id
,因此可能只是遗漏了该部分网址。您提供了employeeId
,它仅用于将id参数映射到Employee
对象。尝试使用{id: identity}
替换上面的查询。