Obecnie pracuję nad aplikacją REST + AngularJS.Obietnica w sprawie akcji oszczędzania zasobów AngularJS
Mam mały problem dotyczący obietnic dotyczących akcji oszczędzania zasobów.
Moje fabryczne:
App.factory('Course', function($resource) {
var course = $resource('/AppServer/admin/courses/:courseId', {}, {});
course.findAll = function() {
return course.query();
};
course.findById = function(id) {
return course.get({
courseId : id
});
};
course.saveCourse = function(course) {
return course.$save();
}
return course;
});
My Kontroler:
App.controller('CourseEditController', function($scope, $routeParams, $location, Course, FlashMessage) {
// load course into edit form
$scope.course = Course.findById($routeParams.courseId);
// save edited course and print flash message
$scope.saveCourse = function() {
var savedCourse = Course.saveCourse($scope.course);
savedCourse.$then(function(httpResponse) {
FlashMessage.set("Die Änderungen am Kurs <i>" + savedCourse.title + "</i> wurden erfolgreich gespeichert.");
$location.path("/kurse/verwalten");
});
}
});
Teraz jest problem, który pojawia się następujący wyjątek:
TypeError: Cannot call method '$then' of undefined
Najdziwniejsze jest to, że jeśli dodaj to samo oddzwanianie do jednego z finderów (np. findById) wszystko działa dobrze. Ale zwracana wartość "return course. $ Save()" jest niezdefiniowana, w porównaniu do zwracanej wartości "return course.get ({courseId: id});" który jest "obiektem obiektu".
Potrzebuję ustawić FlashMessage, kiedy akcja zapisu została w pełni wykonana, a nie wcześniej.
Wszelkie pomysły na ten temat? Odpowiedź z mojej usługi REST jest poprawna. Zwraca zapisany obiekt.
Greets Marca
dzwonisz na dobry kurs. $ Save()? Istnieje "kurs" z $ resource i ten z parametrów. 'course.saveCourse = function (course)' – Utopik
Wywołuję ten z params. Czy to źle? A może drugi (z zasobu) wiedział, co zaoszczędzić? – mooonli
Witam, to jest całkowicie niezwiązane z pytaniem, ale tylko zastanawiam się, której biblioteki FlashMessage używasz. Czy wysyła komunikat ostrzegawczy, nawet gdy stan się zmienił? Usunie ten komentarz później. – Hussain