ngResource更新方法混乱

时间:2016-03-26 21:41:22

标签: angularjs 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的错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我没有尝试下面的示例代码,但一个明显的问题是您需要依赖注入$ resource作为服务的参数[' $ resource']

<强>尝试

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

然后:在控制器中调用PersonData服务:

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.) 
     });