我正在使用$resource服务在我的REST API上使用CRUD操作。
如果未设置customer.id,则为新记录。所以它使用Post Method发送
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);
}
);
};
答案 0 :(得分: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',
},
我不知道有什么更好的方法可以做到这一点