2016-06-16 6 views
1

Ich bin verwirrt, wie genau eine Ressource mit $ speichern aktualisieren. Ich habe die eckige Ressourcendokumentation gelesen und andere Posts auf Stack-Überlauf betrachtet, aber ich kann scheinen, eine Aktualisierungsoperation auf einem vorhandenen Objekt auszuführen.

Zum Beispiel habe ich ein Ereignisobjekt und ich möchte seine Namen und Standorteigenschaften aktualisieren. Ich habe den Anfang einer Funktion, die die eventId eines singulären Ereignisses korrekt aufnimmt.

Hier ist die Funktion bisher:

eventService.updateEvent = function (eventId, eventName, eventLocation) { 

    // Defines the resource (WORKS) 
    var Event = $resource('/api/events/:id/', {id:'@_id'}); 

    // Gets the event we're talking about (WORKS) 
    var event = Event.get({'id': eventId}); 

    // TODO update event 

    }; 

Wie aktualisiere ich erfolgreich diese Ressource?

Antwort

0

Ich habe es herausgefunden!

Als ich die Ressource definiert habe, habe ich die PUT-Operation als eine benutzerdefinierte Methode namens "update" definiert.

Ich rief an, dass diese Ressource und ein bestimmtes Objekt nach ID gesucht. Mithilfe einer Zusage konnte ich die Ressource mithilfe der 'update-Methode' aktualisieren, wenn das Objekt gefunden wurde. Anderenfalls wird ein Fehler ausgegeben.

eventService.updateEvent = function (eventId,eventName,eventLocation) { 

    // Define the event resource, adding an update method 
    var Event = $resource('/api/events/:id/', {id:'@_id'}, 
    { 
     update: 
     { 
      method: 'PUT' 
     } 
    }); 

    // Use get method to get the specific object by ID 
    // If object found, update. Else throw error 
    Event.get({'id': eventId}).$promise.then(function(res) { 
     // Success (object was found) 

     // Set event equal to the response 
     var e = res; 

     // Pass in the information that needs to be updated 
     e.name = eventName; 
     e.location = eventLocation; 

     // Update the resource using the custom method we created 
     Event.update(e) 

    }, function(errResponse) { 
     // Failure, throw error (object not found) 
     alert('event not found'); 
    }); 

};