2016-03-26 9 views
1

私は、さまざまなチュートリアルと、更新メソッドの使用方法に関するさまざまな質問を見てきましたが、今まで私が実際に見つけたものではありません。ngResourceの更新メソッドの混乱

私のサービスは、次のようになります。

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

は、私のような私のコントローラでいろいろなことを試してみました:私はエラーを取得する

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

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

      x.update(); 

たびにそのupdate is not a functionと言います。この問題を解決するにはどうすればよいですか?

答えて

0

を試す[「$リソース」]私は以下のサンプルコードを試してみませんでしたが、1つの明らかな問題は、あなたのサービスにパラメータとして使用すると、依存関係を注入$リソースに必要だということです。

次いで
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.) 
    }); 
:コントローラにPersonDataサービスを呼び出します