AngularJS资源自定义操作和URL

时间:2014-03-20 20:20:53

标签: angularjs rest resources

我尝试使用以下格式向网址发出POST请求:

/questions/:questionId:/answers

我已设置资源(请注意自定义保存网址):

angular.module('questions').factory('AnswersResource',
    ['$resource',
    function($resource) {
        return $resource('questions/:questionId/answers/:answerId', {
            answerId: '@_id'
        }, {
            save: {
                method: 'POST',
                url: 'questions/:questionId/answers'
            }
        });
    }
]);

使用包装器:

angular.module('questions').factory('Answers',
    ['AnswersResource',
    function(AnswersResource) {
        return {
            save: function(answer, questionId) {
                AnswersResource.save({questionId: questionId}, answer);
            }
        }
    }
]);

当我拨打电话时:

Answers.save($scope.answer, '123456');

我像这样向服务器发出POST请求(请注意附加的问号):

POST /questions/123456/answers?

这会抛弃我后端的路由。有谁知道这个问号出现的原因?

谢谢!

1 个答案:

答案 0 :(得分:1)

虽然我仍然不知道为什么要添加问号,但我设法通过简单地删除自定义网址来解决问题。事实证明,$ save命令足够智能,即使没有指定我自己的URL,也可以发布到/questions/123456/answers