2016-03-26 24 views
1

Güncelleme yönteminin kullanımıyla ilgili çeşitli sorulara ve cevaplara baktım, ama şu ana kadar bulamamıştım aslında benim için çalışıyor.ngResource update method confusion

hizmetim şöyle görünür:

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

Ben gibi benim denetleyicisi çeşitli şeyler denedim: bir hata alıyorum

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

ve

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

      x.update(); 

Her zaman ki update is not a function diyor. Bu sorunu nasıl giderebilirim?

cevap

0
aşağıda örnek kodu deneyin vermedi

, ama bir bariz sorun, deneyin hizmetinizde [ '$ kaynak']

bir parametre olarak Bağımlılık enjekte $ kaynağa ihtiyaç vardır:

Daha sonra
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" 
      } 
     } 
    }); 
}]); 

:

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.) 
    }); 
: bir kontrol olarak Persondata hizmeti çalıştırmasına