0

我正在使用$resource服务在我的 REST API 上使用 CRUD 操作。

当 customer.id 未设置时,它是新记录。所以它使用 Post 方法发送

POST /info.json

哪个好

但是
当 customer.id 设置它也使用 POST 方法发送

POST /info.json/1 

虽然我希望它使用 PUT 方法发送类似这样的东西。

PUT /info.json/1 

为什么?我在哪里做错了

$scope.save = function() {

            var customer = new Customer();
            customer.id = $scope.$id;

            customer.name = $scope.name;
            customer.username = $scope.username;
            customer.password = $scope.password;

            customer.$save({controller: "info", processor: ".json"}, function(data) {
                if (data.status)
                    $location.path("/");
                else
                    alert('Request Failed: ' + data.msg);

            }, function(data) {
                alert('Request Failed 2: ' + data.msg);
            }
            );

 };
4

1 回答 1

0

看来,它不会自动选择更新和创建 ID 之间的操作。

所以周围可能是

if ($scope.$id != null)
            {
               customer.$update({controller: "info", processor: ".json"}, function(data) {
                    if (data.status)
                        $location.path("/");
                    else
                        alert('Request Failed: ' + data.msg);

                }, function(data) {
                    alert('Request Failed 2: ' + data.msg);
                }
                );

            } else {
                customer.$save({controller: "info", processor: ".json"}, function(data) {
                    if (data.status)
                        $location.path("/");
                    else
                        alert('Request Failed: ' + data.msg);

                }, function(data) {
                    alert('Request Failed 2: ' + data.msg);
                }
                );
            }
};

还添加资源,因为看起来 Angular 没有更新操作

update: {
            method: 'PUT',
        },

我不知道有什么更好的方法来做到这一点

于 2013-08-08T17:36:35.333 回答