2016-03-26 8 views
1

Ich habe verschiedene Tutorials und Antworten für verschiedene Fragen zur Verwendung der Update-Methode angeschaut, aber bisher nicht von denen, die ich gefunden habe, tatsächlich funktioniert für mich.ngResource Update Methode Verwirrung

Mein Service sieht wie folgt aus:

angular.module("testApp").service("PersonData", function($resource) { 
    return $resource("api/persons/:id", { 
     id: "@_id" 
    }, { 
     update: { 
      method: "PUT" 
     } 
    }); 
}); 

ich verschiedene Dinge in meinem Controller wie versucht:

PersonData.get({id:id}) 
    .$promise.then(function(result) { 
     result.name = "new"; 
     result.$update(); 
    }); 

und

var x = new PersonData({id: id}); 
      x.name = "new"; 

      x.update(); 

ich jedes Mal erhalten einen Fehler, sagt update is not a function. Wie kann ich dieses Problem beheben?

Antwort

0

ich nicht den unten Beispielcode versucht haben, aber ein offensichtliches Problem ist, dass Sie Dependency Inject $ resource als Parameter an Ihren Service benötigen [ '$ resource']

versuchen:

angular.module("testApp").service("PersonData", ['$resource', function($resource) { 
    return $resource("api/persons/:id", { 
     id: "@_id" 
    }, { 
     update: { 
      url: 'url for update path', //an option 
      method: "PUT", 
      params: { 
       id: "@_id" 
      } 
     } 
    }); 
}]); 

dann: den Personendaten-Dienst in einem Controller aufzurufen:

var invoked = PersonData.update({ 
     id:: myID 
    }) 
    .$promise.then(function(data) { 
     // do something with a callback here if needed. 
     // (Like an alert or another update, etc.) 
    });