4

我有一个使用服务来处理 $resource 的设置,如下所示:

服务

factory('EventSlot', ['$resource', function ($resource){
    return $resource('/api/events/:id/slots/:slotId', {id: "@Id", slotId: "@slotId"},
    {
        signup: {
           method: 'PUT'
        }
     });
 }]);

调用函数

EventSlot.signup({id: $scope.id, slotId: $scope.signUpSlot.id}, $scope.signUpSlot);

但是,当 PUT 调用实际通过时,它会到达端点: /api/events/123/slots/其中 123 是合适的,@Id@slotId永远不会附加。所以,我想要的是/api/events/123/slots/456,但这永远不会发生。

4

1 回答 1

4

我认为逻辑按预期工作,它不工作的可能原因是因为$scope.signUpSlot.id可能是undefined.

我创建了一个演示,您可以打开浏览器控制台并查看调用实际上是对正确的 url 进行的:

PUT http://fiddle.jshell.net/api/events/123/slots/456 404 (NOT FOUND) 

Demo on jsFiddle

于 2013-07-30T05:17:48.043 回答