У меня есть код последующих, завод, который CONSUM АНИ отдых:
angular.module('teachers')
.factory("TeachersService",
function($resource) {
var restPath = 'http://localhost:8001/entities/teacher/';
return $resource(restPath + ':id', { id: "@teacherId" }, {
'getSubjects': {
method: 'GET',
url: restPath + ':id' + '/subject',
isArray: true
},
'update': { method: 'PUT'},
'getClasses': {
method: 'GET',
url: restPath + ':id' + '/class',
isArray: true
}
});
});
В контроллере я использую завод:
vm.teacher = TeachersService.get({id: vm.teacherId}, function(){
console.log(vm.teacher)
}, function(){
console.log('Teacher not found')
vm.teacher = null;
})
И данные retirieved хорошо, но сейчас мне нужно обновление данные этого лица, и я хочу использовать метод обновления, что завод имеет:
vm.teacher.$update(function(){
console.log('success')
}, function(error){
console.log('error')
console.log(error)
});
Но я не знаю, почему она всегда дает мне неудачу (методы работы остроумие h curl и с другими программами, такими как почтальон).
Это пример заголовка провал:
Object { data: null, status: -1, headers: fd/<(), config: Object, statusText: "" }
Я не понимаю, что происходит, я думаю, что проблема заключается в том, что я прохожу идентификатор. Я уверен, что объект vm.teacher имеет значение teacherId с целым числом, но я не знаю, почему это не передается. Кроме того, я вижу сетевую консоль firefox (в моем случае), и я вижу, что вызов на сервер не существует, но когда я изменяю определение на id, например, это: {id: "@_teacherId"}
вызов выполняется, но с ошибкой, потому что url не имеет идентификатора объекта в конце, и сервер в методе PUT нуждается в этом.
Пример поддельного пользователь (после того, как его получить):
Object { createdBy: 1, phone: "+34740 51 73 72", createdAt: "Tue Oct 25 12:58:30 2016", name: "Alvaro", address: "Callejón Lourdes Pozuelo 11 Apt. 54…", teacherId: 4, $promise: Object, $resolved: true }
Любая идея? Я слишком много замалчивал. Спасибо!
EDIT
Если изменить код и установить метод получить вызов делает:
'update': {
method: 'GET',
url: restPath + ':id'
}
, но не тогда, когда метод PUT:
'update': {
method: 'PUT',
url: restPath + ':id'
}
http: // stackoverflow.com/a/17377120/1544886 –
Что происходит с этим 'TeachersService.update ({id: vm.teacherId}, vm.teacher);'? – Searching
@Поиск таким образом дает мне ту же ошибку: 'Object {data: null, status: -1, headers: fd/<(), config: Object, statusText:" "}' –