gpt4 book ai didi

javascript - AngularJS 资源更新时不使用 ID

转载 作者:行者123 更新时间:2023-12-03 10:20:58 25 4
gpt4 key购买 nike

我有一个非常基本的工厂:

app.factory('Person', function($resource) {
return $resource(API_ROUTE+'/people/:id.json', {
id: "@id"
}, {
update: {
method: "PUT"
}
});
});

它按预期使用指定的 URL 执行 get 请求,但当我尝试进行更新时,它会转到 /people.json 而不是 /people/:id.json.

Person.get({
id: personId
}, function(person) {
return $scope.person = person;
});

$scope.person.$update()

我从服务器日志中得到的响应:

Started PUT "/hr/angular/people.json" for 128.104.86.165 at 2015-04-14 14:12:30 -0500

ActionController::RoutingError (No route matches [PUT] "/angular/people.json"):

我尝试了不同的方法来执行更新命令,但得到了相同的响应。

Person.update($scope.person, function(person) {
console.log($person);
});

如果我将 ID 硬编码到资源路径中,例如 $resource(API_ROUTE+'/people/1234.json'),我就能够对该个人执行所有预期操作,包括更新。我不明白我缺少什么,可以让资源的 get 方法使用正确的路径,但不能更新。

最佳答案

您需要将您的 id 传递到更新方法中,不是吗?

$scope.person.$update({ id: 1 }, function(response) {
//
});

关于javascript - AngularJS 资源更新时不使用 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29635797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com